Définition de la Taille d'un Composite ou JOptionPane
Je veux donc en quelque sorte de définir la taille de mon JOptionPane - sans le fixer, il est tout simplement trop grand pour mes fins et ne sont pas agréables à regarder. voici mon code:
JScrollPane scrollpane = new JScrollPane();
String categories[] = { "1. Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One Problem One", "2. Problem Two", "3. Extended Family", "4. Extended Family", "5. Extended Family"};
JList list = new JList(categories);
errorListCellRenderer cellRenderer = new errorListCellRenderer();
list.setCellRenderer(cellRenderer);
scrollpane = new JScrollPane(list);
JPanel panel = new JPanel();
panel.add(scrollpane);
JOptionPane.showMessageDialog(null, panel, "Error List",
JOptionPane.PLAIN_MESSAGE);
lorsque j'ai mis la taille du Composite en tant que tel:
panel.setPreferredSize(new Dimension(500, 200));
la barre de défilement disparaît et donc tout n'est pas affiché.
des idées? Java n00b...
OriginalL'auteur BigBug | 2013-01-13
Vous devez vous connecter pour publier un commentaire.
Merci de faire les modifications suivantes et voyez;
De ne pas mettre le JScrollPane à l'intérieur d'un autre Panneau. Passer le JScrollPane directement à l'intérieur de la showMessageDialog().
Également utiliser le composant scrollPane.getViewport().ajouter(liste);
EDIT:
J'ai juste essayé la suivante, et la barre de défilement est visible pour moi que l'augmentation des éléments.
capture d'écran jointe;
Le point de l'utilisation d'un parchemin volet est de mettre des éléments laissant ainsi passer à décider si ou de ne pas afficher les barres de défilement lorsque la taille augmente. Donc, il n'y a pas de point, afin que jamais d'emballage d'un panneau défilant à l'intérieur d'un autre panneau. Ce que vous pouvez faire est de mettre la liste dans le panneau et placez-la dans le panneau défilant.
j'ai apporté les modifications que vous suggérez maintenant. cependant, la barre de défilement ne s'affiche toujours pas. au lieu de cela, l'ensemble de la zone devient plus grand et plus comme je ajouter de plus en plus d'entrées - ce n'est pas souhaitée car elle deviennent trop grands. de quoi ai-je besoin de changer afin de garder la barre de défilement et de ne pas avoir la boîte de devenir aussi grosse? merci pour votre aide btw
j'ai aussi essayé d'ajouter verticalscrollbarpolicy: composant scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); mais la barre de défilement n'apparaissent jamais, à moins que je l'ai changer pour TOUJOURS - à quel point elle s'affiche mais ne fonctionne pas... la boîte est encore trop grand
Astuce re captures d'écran: Alt+impr Écran permettra de saisir uniquement le domaine de la GUI. +1
OriginalL'auteur dinukadev
Si vous voulez juste changer la taille d'un JOptionPane fenêtre, vous pouvez le faire en utilisant l'UIManager. Comme ceci:
OriginalL'auteur Lori
donner le composant scrollpane un preferredSize, puis de l'ajouter directement à la optionPane
OriginalL'auteur Michael Dunn