Я использую JList в Java Swing, но когда мое Диалоговое окно открывается, Список не показывают.
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;
}
Список определяется:
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJList(), BorderLayout.CENTER);
}
return jContentPane;
}
Это - JContentPane (/панель)
public fensterdrei(Frame owner) {
super(owner);
initialize();
}
вызов кода getJContentPane()
:
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Auswahl");
}
Я не могу найти, где вы устанавливаете модель JLIST?
Что-то вроде
mylist = new JList();
mylist.setModel(model);
, пожалуйста, посмотрите на конвенции кода для языка программирования Java
Fensterdrei
вместо Fensterdrei
MyList
вместо MyList
Это GetContentPane не GetjcontentPane, и вы не должны перегружать его.
вместо этого, в вашем конструкторе (или другой функции, которая сразу называется), вы
getContentPane().setLayout(new BorderLayout());
getContentPane().add(getJList(), BorderLayout.CENTER);
Чтобы ответить на ваш вопрос, мне нужно будет посмотреть код, который вызывает getjcontentpane, чтобы убедиться, что вы на самом деле добавляете, что jpanel где-то где-то. Мне также нужно будет посмотреть, назначили ли вы что-то JContentPane, поскольку вы добавляете только список, если эта панель нуль.
Я думаю, что вы на самом деле не добавляете возвращенную панель в диалоговое окно или что JContentPane был назначен ненулью значение.
Вызов mylist.setfisible (true) не имеет смысла, поскольку он еще не добавляется в окно. Когда диалог сделан видимым, все его дети будут видимыми.