Redimensionner la boîte de dialogue de message (JOptionPane) pour une longue phrase avec une largeur fixe
Je suis en train de redimensionner la hauteur de la boîte de dialogue (JOptionPane
) pour une longue phrase avec un lien hypertexte.
Mon code est ..
public class DialogTest {
public static void main(String[] args) throws Exception {
JTextPane jtp = new JTextPane();
Document doc = jtp.getDocument();
for (int i = 0; i < 50; i++) {
doc.insertString(doc.getLength(), " Hello Java World ", new SimpleAttributeSet());
if ((3 == i) || (7 == i) || (15 == i)) {
doc.insertString(doc.getLength(), " Hello Java World ", new SimpleAttributeSet());
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setUnderline(attrs, true);
StyleConstants.setForeground(attrs, Color.BLUE);
String text = "www.google.com";
URL url = new URL("http://" + text);
attrs.addAttribute(HTML.Attribute.HREF, url.toString());
doc.insertString(doc.getLength(), text, attrs);
}
}
JScrollPane jsp = new JScrollPane(jtp);
jsp.setPreferredSize(new Dimension(480, 150));
jsp.setBorder(null);
JOptionPane.showMessageDialog(null, jsp, "Title", JOptionPane.INFORMATION_MESSAGE);
}}
Si je n'ai pas définir la taille par défaut, cette boîte de dialogue va être vraiment long, et il n'est pas lisible. Donc, je veux fixer la largeur de 480.
Et, je veux régler la hauteur dépend de la longueur du texte.
Si j'exécute ce code, je vois la barre de défilement verticale. Mais je ne veux pas afficher que la barre de défilement et de régler la hauteur de la boîte de dialogue.
double possible de dois-je éviter l'utilisation de set(de préférence|Maximum|Minimum)Taille de méthodes en Java Swing?
euh.. je n'ai pas trouvé la réponse pour moi dans le fil.
L'essentiel, c'est que vous ne devriez pas utiliser
1) Pour mieux aider plus tôt, post un MCTaRE (Minime Complète Testé et Lisible par Exemple). 2) Quel est le type de document, HTML? Si oui, vous pouvez utiliser la même technique vu dans cette réponse.. (mais si vous ne pouvez pas le faire fonctionner, de poster un MCTaRE plutôt que uncompilable fragments de code).
java-sl.com/tip_text_height_measuring.html
euh.. je n'ai pas trouvé la réponse pour moi dans le fil.
L'essentiel, c'est que vous ne devriez pas utiliser
setPreferredSize
(il ne fait pas ce que vous pensez qu'il n'). Désolé de ne pas suggérant une approche alternative, mais je suis à court de temps pour le moment.1) Pour mieux aider plus tôt, post un MCTaRE (Minime Complète Testé et Lisible par Exemple). 2) Quel est le type de document, HTML? Si oui, vous pouvez utiliser la même technique vu dans cette réponse.. (mais si vous ne pouvez pas le faire fonctionner, de poster un MCTaRE plutôt que uncompilable fragments de code).
java-sl.com/tip_text_height_measuring.html
OriginalL'auteur swordartist | 2014-02-27
Vous devez vous connecter pour publier un commentaire.
De fixer la largeur et de s'adapter à la hauteur, personnellement, j'utilise cette astuce :
Vous fixer un arbitraire de la hauteur et de l'ciblées largeur avec setSize, puis obtenir la hauteur prévue avec getPreferredSize() :
Le code complet serait :
OriginalL'auteur Sharcoux
Pour redimensionner votre JOptionPane veuillez utiliser le substituée classe affiché dans l'URL ci-dessous:-
ModifiableJOptionPane
OriginalL'auteur Abhishek K