Labeled TextField - Alguem ja fez? (sem herdar JPanel)

4 respostas
G

Bom dia pessoal!

Estou precisando agilizar meu trabalho,
tive tentando criar um JLabeledTextField (um JTextField com um Label junto)
mas nao queria que este fosse herdado de JPanel,
ainda nao consegui, sera que tem alguem que pode dar uma luz?

4 Respostas

G

vc pode criar uma classe extendida de JComponent
vai um exemplo a seguir

public class LabelTexto extends JComponent
{
	protected JLabel label;
	protected JTextField texto;

	public LabelTexto()
	{
		GroupLayout layout = new GroupLayout(this);
		setLayout(layout);
		
		label = new JLabel();

		texto = new JTextField();
		texto.setFocusTraversalPolicy(getFocusTraversalPolicy());

		layout.setHorizontalGroup(
				layout.createSequentialGroup()
					.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
							.addComponent(label)
							.addComponent(texto)));
		layout.setVerticalGroup(
				layout.createSequentialGroup()
					.addComponent(label)
					.addComponent(texto,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE));
    }

    public void setEditable(boolean b)
    {
		texto.setEditable(b);
    }
    
    public boolean isEditable()
    {
    	return texto.isEditable();
    }
    

}

Dai a unica coisa q vc vai ter q fazer é implementar os métodos q vc quizer chamar do JTextField como eu fiz no exemplo com o setEditable e isEditable

vlw

G

Obrigado Gersonlange!

Na verdade eu queria herdar este componente de
javax.swing.text.JTextComponent ou
javax.swing.JTextField
mas a sua dica foi boa, sinceramente eu nao tinha
pensado em herdar de JComponent.

Mas ainda gostaria de herda-lo de um desses componentes que citei.

Falei do que nao queria mas nao falei do que queria. rs

G

Até há um meio de vc fazer, mas vc vai ter q explorar o TextFieldUI, onde vc pode criar uma classe extendendo o BasicTextFieldUI e declará-lo no setUI na classe q vc for extender de JTextField.
Dai ali vc vai ter q estudar um jeito para q o JLabel nao cai dentro da caixa do JTextField, mas fora dele.
Analize bem o codigo do BasicTextFieldUI q vc deve achar um meio.

Vlw

G

Valeu cara, vamo la entao.
Quando conseguir eu coloco aqui.

Obrigado!

Criado 18 de setembro de 2007
Ultima resposta 18 de set. de 2007
Respostas 4
Participantes 2