Pergunta
Eu estou usando um JList em Java Swing, mas quando a minha caixa de Diálogo se abre, a Lista não é mostrado.
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;
}
A lista é definida:
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJList(), BorderLayout.CENTER);
}
return jContentPane;
}
É um JContentPane (/Painel)
public fensterdrei(Frame owner) {
super(owner);
initialize();
}
o código de chamada getJContentPane()
:
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("Auswahl");
}
Solução
Não consigo encontrar onde você está definindo o modelo do JLIST?
Algo como
mylist = new JList();
mylist.setModel(model);
Por favor, dê uma olhada no Convenções de código para a linguagem de programação Java
FensterDrei
ao invés de fensterdrei
myList
ao invés de mylist
Outras dicas
É getContentPane não getJContentPane, e Você não deve sobrepor-se.
Em vez disso, em seu construtor (ou outra função que é chamada imediatamente) fazer
getContentPane().setLayout(new BorderLayout());
getContentPane().add(getJList(), BorderLayout.CENTER);
Para responder à sua pergunta, eu precisaria ver o código que chama o GetJContentPane para garantir que você esteja adicionando esse JPanel em algum lugar. Eu também precisaria ver se você atribuiu algo ao JContentPane, pois adiciona apenas a lista se esse painel for nulo.
Meu palpite é que você não está adicionando o painel retornado à caixa de diálogo ou que o JContentPane recebeu um valor não nulo.
A chamada para mylist.setVisible (true) não faz sentido, pois ainda não foi adicionada a uma janela. Quando uma caixa de diálogo for visível, todos os seus filhos também serão visíveis.