JTextField = método visible

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?

Você precisa revalidar o componente.

Chame o método revalidate() no JTextField.

[quote=Beibin]Você precisa revalidar o componente.

Chame o método revalidate() no JTextField.[/quote]

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…

Tenta fazer isso antes do setVisible(true);, beleza?

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.

[quote=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.[/quote]

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

Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.

[quote=marcobiscaro2112][quote=neto.fiamenghi]
o que significa o Runtime?
[/quote]
Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.[/quote]

ok entendi, mas na prática onde fica esse trecho? no método static ?

[quote=neto.fiamenghi][quote=marcobiscaro2112][quote=neto.fiamenghi]
o que significa o Runtime?
[/quote]
Tempo de execução, ou seja, enquanto seu programa está sendo executado aquele trecho será executado.[/quote]

ok entendi, mas na prática onde fica esse trecho? no método static ?[/quote]

É 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).

[quote=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?

[/quote]

Segue um exemplo para isso.


import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JRadioButton;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;


/**
 * Teste 
 * @author lucas.correa
 */
public class TesteFrame extends javax.swing.JFrame implements MouseListener{
	private static final long serialVersionUID = 1L;
	private JTextField txtField;
	private JRadioButton rbRadio;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TesteFrame inst = new TesteFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public TesteFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			getContentPane().add(getJTextField1());
			getContentPane().add(getJRadioButton1());
			pack();
			setSize(400, 300);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private JTextField getJTextField1() {
		if(txtField == null) {
			txtField = new JTextField();
			txtField.setText("Texto");
			txtField.setBounds(55, 90, 142, 21);
			txtField.setVisible(false);
		}
		return txtField;
	}
	
	private JRadioButton getJRadioButton1() {
		if(rbRadio == null) {
			rbRadio = new JRadioButton();
			rbRadio.setText("Radio");
			rbRadio.setBounds(231, 93, 132, 18);
			rbRadio.addMouseListener(this);
		}
		return rbRadio;
	}

	public void mouseClicked(MouseEvent e) {
		if(e.getSource() == rbRadio){
			if(rbRadio.isSelected()){
				txtField.setVisible(true);
			}else{
				txtField.setVisible(false);
			}
		}
	}

	public void mouseEntered(MouseEvent e) {
		
	}

	public void mouseExited(MouseEvent e) {
		
	}

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
		
	}

}

Espero ter ajudado…

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!

[quote=lina]Oi,

Você pode fazer apenas o seguinte:

Tchauzin![/quote]

Lembrando se for fazer isso o rbRadio teria que ja ter sido instanciado, senao vai gerar uma Exception…