[Resolvido]Duvida sobre redimensionamento de campo jtextfield em tempo de execução

Boa noite pessoal do forum, estou tentando redimensionar um campo em tempo de execução, é possível mesmo fazer isso. Estou tentando isso através do metodo setSize do componente e chamando o metodo repaint(), mas nada acontece, alguém poderia me da alguma idéia ou indicar alguma fonte, já pesquisei no google e em alguns foruns, mas não encontrei nada nesse sentido.

Não sei seu código, então sugiro tentar dar um revalidate() no JPanel onde o JTextField está.

E um codigo simples, quando o kara seleciona uma opção da comboxCombox, redimensiona o campo usando setSize() do componente e depois o repaint() do mesmo, esta alterando a dimensão porem quando clico em outro campo volta a dimensão anterior, usei o revalidate() no jpanel apos usar o setSize(), porem o campo não se redimensiona.

Use o setColumns(int num) do JTextfield e não o setSize, fiz um código tosco abaixo de exemplo, e está funcionando, teste aí e qualquer dúvida responda.


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class FrmTeste extends JFrame
{
	private JPanel pn;
	private JComboBox<Integer> cboNum;
	private JTextField txtTexto;


	public FrmTeste()
	{
		super();
		setPreferredSize(new Dimension(800,600));
		add(getPn(),BorderLayout.CENTER);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		pack();
	}

	private JPanel getPn()
	{
		if (pn==null)
		{
			pn = new JPanel();
			pn.add(getCboNum());
			pn.add(getTxtTexto());
		}
		return pn;
	}

	private JComboBox<Integer> getCboNum()
	{
		if (cboNum==null)
		{
			Integer[] itens = {1,2,3,4,5,6,7,8,9};
			cboNum= new JComboBox<Integer>(itens);
			cboNum.addActionListener(new ActionListener()
			{
				@Override
				public void actionPerformed(ActionEvent arg0)
				{
					Integer sel = (Integer) cboNum.getSelectedItem();
					getTxtTexto().setColumns(sel);
					getPn().revalidate();
				}
			});
		}
		return cboNum;
	}

	private JTextField getTxtTexto()
	{
		if (txtTexto==null)
		{
			txtTexto= new JTextField();
		}
		return txtTexto;
	}

}

Muito obrigado mrrbigu, funcionou beleza, vou pesquisar para saber porque o setSize não funciona e para conhecer melhor o swing também, mais uma vez obrigado.