Frage
Ich verwende eine JList in Java Swing, aber wenn mein Dialog eröffnet wird, wird die Liste nicht angezeigt.
private JList getJList() {
if (mylist == null) {
mylist = new JList();
mylist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
mylist.setSize(new Dimension(154, 106));
model.addElement("test");
model.addElement("zwei");
mylist.setVisible(true);
}
return mylist;
}
Die Liste ist definiert:
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJList(), BorderLayout.CENTER);
}
return jContentPane;
}
Es ist eine JContentPane (/Panel)
public fensterdrei(Frame owner) {
super(owner);
initialize();
}
der Code ruft getJContentPane()
:
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Auswahl");
}
Lösung
Ich kann nicht finden, wo Sie das Modell der JList festlegen?
Etwas wie
mylist = new JList();
mylist.setModel(model);
Bitte schauen Sie sich das an die Codekonventionen für die Java -Programmiersprache
FensterDrei
Anstatt von fensterdrei
myList
Anstatt von mylist
Andere Tipps
Ich habe es getan.Ich habe mit dem Übergeben des Bildes in die Ansicht geschaut. So funktioniert es. generasacodicetagpre.
Um Ihre Frage zu beantworten, müsste ich den Code sehen, der GetJContentPane aufruft, um sicherzustellen, dass Sie diese JPanel irgendwo hinzufügen. Ich müsste auch sehen, ob Sie JContentPane etwas zugewiesen haben, da Sie nur die Liste hinzufügen, wenn dieses Panel null ist.
Ich vermute, dass Sie das zurückgegebene Panel nicht zum Dialog hinzufügen oder dass JContentPane einen Null -Nullwert zugewiesen wurde.
Der Anruf bei myList.setVisible (true) macht keinen Sinn, da er noch nicht zu einem Fenster hinzugefügt wird. Wenn ein Dialog sichtbar gemacht wird, werden auch alle ihre Kinder sichtbar gemacht.