Na hora que meu formulário abrir preciso que meu jTextField esteja oculto e ao clickar no radioButton ele apareça, o problema esta na hora de mostrar o formulário, o textField fica oculto mas quando chamo o método “setVisible(true)” ele não aparece, alguém já passou por isso?
Beibin sou novo em Java, estou apanhando um pouco.
onde eu chamo esse método?
no actionPerformad do meu radionButton eu estava colocando assim:
jTextField.setVisible(true);
eu tentei colocar o revalidate e nao deu certo…
A
allyssonluan
Tenta fazer isso antes do setVisible(true);, beleza?
B
Beibin
JPanel panel = new JPanel();
JTextField tf = new JTextField();
panel.add(tf);
tf.setVisible(false);
...
// Runtime
tf.setVisible(true);
panel.validate();
Isso fará com que o painel valide o layout de seus componentes e desenhe-os na tela.
N
neto.fiamenghi
Beibin:
JPanel panel = new JPanel();
JTextField tf = new JTextField();
panel.add(tf);
tf.setVisible(false);
...
// Runtime
tf.setVisible(true);
panel.validate();
Isso fará com que o painel valide o layout de seus componentes e desenhe-os na tela.
eu crio um novo método com esse código?
JTextField tf = new JTextField();
panel.add(tf);
tf.setVisible(false);
o que significa o Runtime?
valew
M
marcobiscaro2112
Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.
N
neto.fiamenghi
marcobiscaro2112:
neto.fiamenghi:
o que significa o Runtime?
Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.
ok entendi, mas na prática onde fica esse trecho? no método static ?
J
j0nny
neto.fiamenghi:
marcobiscaro2112:
neto.fiamenghi:
o que significa o Runtime?
Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.
ok entendi, mas na prática onde fica esse trecho? no método static ?
É no momento em que vc deseja que ele apareça, esse é o ponto que vc deve fazer o que foi dito aí, ou seja, a aplicação estará ‘rodando’ (em runtime).
C
correainfo
neto.fiamenghi:
Boa noite galera,
Na hora que meu formulário abrir preciso que meu jTextField esteja oculto e ao clickar no radioButton ele apareça, o problema esta na hora de mostrar o formulário, o textField fica oculto mas quando chamo o método “setVisible(true)” ele não aparece, alguém já passou por isso?
Segue um exemplo para isso.
importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JRadioButton;importjavax.swing.JTextField;importjavax.swing.WindowConstants;importjavax.swing.SwingUtilities;/** * Teste * @author lucas.correa */publicclassTesteFrameextendsjavax.swing.JFrameimplementsMouseListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldtxtField;privateJRadioButtonrbRadio;/** * Auto-generated main method to display this JFrame */publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){TesteFrameinst=newTesteFrame();inst.setLocationRelativeTo(null);inst.setVisible(true);}});}publicTesteFrame(){super();initGUI();}privatevoidinitGUI(){try{setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setLayout(null);getContentPane().add(getJTextField1());getContentPane().add(getJRadioButton1());pack();setSize(400,300);}catch(Exceptione){e.printStackTrace();}}privateJTextFieldgetJTextField1(){if(txtField==null){txtField=newJTextField();txtField.setText("Texto");txtField.setBounds(55,90,142,21);txtField.setVisible(false);}returntxtField;}privateJRadioButtongetJRadioButton1(){if(rbRadio==null){rbRadio=newJRadioButton();rbRadio.setText("Radio");rbRadio.setBounds(231,93,132,18);rbRadio.addMouseListener(this);}returnrbRadio;}publicvoidmouseClicked(MouseEvente){if(e.getSource()==rbRadio){if(rbRadio.isSelected()){txtField.setVisible(true);}else{txtField.setVisible(false);}}}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmousePressed(MouseEvente){}publicvoidmouseReleased(MouseEvente){}}
Espero ter ajudado…
L
lina
Oi,
Você pode fazer apenas o seguinte:
Isso evitará cdificação desnecessária como:
if (rbRadio.isSelected()) {
texfield.setVisible(true);
}
else {
texfield.setVisible(false);
}
Tchauzin!
C
correainfo
lina:
Oi,
Você pode fazer apenas o seguinte:
Tchauzin!
Lembrando se for fazer isso o rbRadio teria que ja ter sido instanciado, senao vai gerar uma Exception…