Quando crio classe, java apresenta um problema

3 respostas
fabianocosta

Ola,

Estou criando uma classe baseado em um botao usando Swing.

E um botao de OK que al ser clicado da um dispose() no jform.

O problema e que como é uma classe que não tem fForm criando ainda, pois ela vai ser colocado em alguns form, em outros nao, o compilador diz que dispose esta errado. Sim estaria, mas nao pensei que isso aconteceria em uma classe que vai ser usada depois.

Como criar uma classe de uma botao ok assim?

Obrigado.

3 Respostas

carlosmcp

É melhor jogar o código aqui.

ViniGodoy

Seria algo assim?

public class DisposeListener implements ActionListener {
     JFrame frame;

     public DisposeListener(JFrame frame) {
        if (frame == null) throw new NullPointerException();
        this.frame = frame;
     }

     public void actionPerformed(ActionEvent e) {
         frame.dispose();
     }
}

Depois, na hora de usar:

JFrame umFrameNovo = new JFrame();
JButton btnFechar = new JButton("Fechar");
btnFechar.addActionListener(new DisposeListener(umFrameNovo));
umFrameNovo.add(btnFechar);
umFrameNovo.setSize(200,200);
umFrameNovo.setVisible(true);

Daria para implementar com um filho de Action, também.

fabianocosta

Não entendi bem, não consegui implementar.

Segue código:

public class botao extends javax.swing.JButton {
    private javax.swing.JButton cmdCommand;
    public botao() {
        setText("OK");
        addMouseListener(new java.awt.event.MouseAdapter()
            {
              public void mouseClicked(java.awt.event.MouseEvent evt) 
                {
                 Click(evt);    
                }
        });
    }
    private void Click(java.awt.event.MouseEvent evt) {
       // -> Quero o dispose aqui, mas não rola.

}

 }

Depois lá no form, eu apenas coloco:

private botao botao_ok;

Não entendi onde implementar seu código.

Criado 5 de junho de 2007
Ultima resposta 24 de jun. de 2007
Respostas 3
Participantes 3