Pergunta

Eu tenho um JFrame. Este JFrame contém um JButton. Clico no JButton e 10 JTextFields são criadas.

o problema: Eu não posso vê-los até que "eu forçar um repaint ()" por redimensionar a janela. Só então eu vejo os JTextFields criadas.

código:

JPanel points = new JPanel();

//Creating the JTextFields:
for (int i=0; i<10; i++) {
    JTextField textField = new JTextField();
    points.add(textField);
}

repaint();
this.repaint();
super.repaint();
points.repaint();

OBRIGADO - após a points.validate loop for, eu apenas chamado () e funcionou ...

Foi útil?

Solução

Container.add API docs sayeth:

Nota: Se um componente foi adicionado ao um recipiente que tenha sido apresentado, Validar deve ser chamado em que recipiente para exibir o novo componente. Se vários componentes são sendo adicionado, você pode melhorar eficiência, só validar as chamadas uma vez, depois de todos os componentes têm foi adicionado.

É obscura e não muito inteligente, mas é as regras. Pode ser melhor para chamar JComponent.revalidate

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top