Classe anonima monitorando uma JTextField

Estou tendo essa duvida,
Fazendo uma aplicativo simples que pega o texto da JTextField e quando um botão é pressionado ele captura o texto e mostra no messageDialog.

Uma forma de resolver é criar uma classe BotaoAction e implementar ActionListener recebendo como parametro um JTextField:

public class BotaoAction implements ActionListener{

	private JTextField textField;
	public BotaoAction(JTextField t) {
		this.textField = t;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String texto = textField.getText();
		JOptionPane.showMessageDialog(null, texto);
	}

}

A minha duvida é:
Teria como eu acessar o JTextField usando uma classe anonima na hora de registrar o ActionListener ao botão?
Lembrando que minha referência ao JTextField é local, ou seja, sem usar um método getter.

Ao invés de marcar o tópico com a informação [Swing], simplesmente abra-o no fórum certo, que é o de Interface Gráfica.

E, respondendo a sua dúvida, sim teria. Se seu JTextField for uma propriedade, basta chama-lo diretamente:

button.addActionListener(new ActionListener() @Override public void actionPerformed(ActionEvent evt) { JOptionPane.showMessageDialog(Janela.this, texto); } });

Se seu JTextfield é apenas uma variável local, também é possível, desde que você a declare como final.

Sou novo no forum, nao vi que existia uma area dedicada só pra swing.

tive que criar outra classe e colocar os objetos frame, label text como atributos.

Acho que está errado, a ação é para acontecer quando o botao é pressionado. Voce está registrando o listener no JTextField

se declarar como final funciona,
obrigado.

Foi só uma confusão. É só registrar o listener no Button ao invés do JTextField.

Outra coisa, é importante passar o this da classe da janela para o JOptionPane e não null.

Dentro de uma inner class (seja anonima ou não) use: