Problema ao adicionar evento em um button

Bom comecei a utilizar o eclipse recentemente e estou tendo um pouco de dificuldades em relação ao java swing

estou tentando adicionar um eventon ao meu button porém:

codigo:

	private JPanel Logo;
	private JPanel Items;
	private JPanel Footer;
	private JLabel label1,label2;
	private  JTextField  usuario;
	private JPasswordField senha;
	private JButton entrar;
	private JButton registrar;

    public LoginSystem() {
    		JPanel contentPane = (JPanel) getContentPane();
    		contentPane.setBackground(Color.WHITE);
    		contentPane.setLayout(new FlowLayout());
    		setContentPane(contentPane);
    	    //Set the frame properties
    	    setSize         (FRAME_WIDTH, FRAME_HEIGHT);
    	   // setResizable    (false);
    	    setTitle        ("market v1");
    	    setLocation     (FRAME_X_ORIGIN, FRAME_Y_ORIGIN);
    	    setResizable(false);
    	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    	    Items = new JPanel(new GridLayout(3,1));
    	    entrar = new JButton("Entrar");
    	    entrar.setBounds(100, 285, BUTTON_WIDTH, BUTTON_HEIGHT);
    	    entrar.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("teste");
    			}
    		}
    		);
    	    registrar = new JButton("Registrar");
    	    registrar.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT);
    	    label1 = new JLabel();
    	    label1.setText("Username:");
    	    usuario = new JTextField(15);
    	  
    	    label2 = new JLabel();
    	    label2.setText("Password:");
    	    senha = new JPasswordField(15);
    	    Items.add(label1);
    	    Items.add(usuario);
    	    Items.add(label2);
    	    Items.add(senha);
    	    Items.add(entrar);
    	    Items.add(registrar);
    	    add(Items,BorderLayout.CENTER);
    	}

estou com problema especificamente no metodo addActionListener:

codigo relacionado ao button:

	    entrar = new JButton("Entrar");
	    entrar.setBounds(100, 285, BUTTON_WIDTH, BUTTON_HEIGHT);
	    entrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
			}
		}
		)

resolvido (tava esquecendo do overrider), mas utilizei funções lambda

	    entrar.addActionListener( (e) -> {
	    });

Não dá para ver o restante do código do botão. Bom aqui um exemplo:

entrar.addActionListener(
          new ActionListener(){
	                public void actionPerformed(ActionEvent evento){
					eventoBtnEntrar(evento);
		        }
          }
 );

private void eventoBtnEntrar(ActionEvent evento){
		System.out.println("Zaz-traz!");
}
1 curtida

você está botando um método dentro de outro método, esse é o problema, não é este o problema?
Instancia o ActionListener faz dele o que vc quer e depois passa no método .addActionListener

1 curtida

Ele não criou um método dentro de outro método.
Ele instanciou uma classe anônima que implementa ActionListener, isso é perfeitamente válido, na ocasião, provavelmente o erro era devido à um import faltando.
Mas agora ele substituiu a classe anônima por uma expressão lâmbda, fica até mais limpo o código.

1 curtida

exato tava faltando overrider.

A falta da anotação @Override não impede o funcionamento.

então eu acabei me passando em alguma letra do ActionListener