[Resolvido] O que está de errado no meu código?

5 respostas
java
Moraisdelimahigor
import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

import javax.swing.JButton;

public class Botão implements ActionListener {

private JButton BotãoUm, BotãoDois;
public Botão(JButton BotãoUm, JButton BotãoDois) {
    this.BotãoUm = BotãoUm;
    this.BotãoDois = BotãoDois;
}

@Override
public void actionPerformed(ActionEvent evento) {
    if(evento.getSource() == BotãoUm){
        JOptionPane.showMessageDialog(null, "Você clicou no Botão 1.");
    }
    if(evento.getSource() == BotãoDois){
        JOptionPane.showMessageDialog(null, "Você clicou no Botão 2.");
    }
}

}

import java.awt.FlowLayout;

import javax.swing.JFrame;

import javax.swing.JButton;

public class Delicia extends JFrame {

private JButton botãoUm;

private JButton botãoDois;

private Botão handler;
public Delicia()
{
    super("Criando botões gostosos.");
    setLayout(new FlowLayout());
    
    handler = new Botão(botãoUm, botãoDois);
    
    botãoUm.addActionListener(handler);
    add(botãoUm);
    
    botãoDois.addActionListener(handler);
    add(botãoDois);
}

}

<strong>Classe Principal:</strong>

import javax.swing.JFrame;

public class Janela {

public static void main(String[] args) {

Delicia frame = new Delicia();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);
    frame.setVisible(true);
}

}

Quando eu executo no Netbeans 8.0.2 dá erro…

5 Respostas

igomes

Quando abrir um tópico, descreva o erro
public Delicia() -> talvez um nome não muito apropriado
super(“Criando botões gostosos.”); -> talvez uma String não muito apropriada
BotãoUm, BotãoDois - > variáveis/atributos começam com letras minúsculas (ao não ser final)
botãoUm.addActionListener(handler); / public Botão Com acentuação ?
if(evento.getSource() == BotãoUm) comparando objetos com == ?
ufa, mais fácil falar o que tem certo, porque de errado … :).

Moraisdelimahigor

Há cara, vai me dizer que isso influencia se um código vai funcionar ou não? Olha, eu comparei meu código com o do Java Progressivo (site que ensina a linguagem de programação Java), e tava igualzinho! E sobre esse último “erro”, isso é para caso se clique no botão aparecer a mensagem.
Quando eu mandava executar, o erro que parecia era esse:
“Exception in thread “main” java.lang.NullPointerException
at Botões2.Delicia.(Delicia.java:17)
at Botões2.Janela.main(Janela.java:5)

pmlm

Não influencia mas há boas práticas e convenções que devem ser seguidas.
E o teu erro (que não tinhas colocado no post inicial) é porque em lado nenhum inicializas os teus botões, e desta forma, quando clicas num deles, está a null e dá NullPointerException.

Moraisdelimahigor

Vlw cara!

igomes

AAAAAAAAAAAAAAAAAAAAAAAAh, tá desculpa, se pra você o importante é funcionar só, pode continuar assim, vai fundo meu chapa.
Só que se tem pretensão de trabalhar com isso, ai deveria repensar algumas coisas.

Criado 16 de março de 2016
Ultima resposta 17 de mar. de 2016
Respostas 5
Participantes 3