Usar Classe soh para os Botoes

5 respostas
S

Ola pessoal, tenho uma JPanel e gostaria de criar uma classe separada somente para os botoes de edicao.
Assim eu poderei utilizar os botoes em muitos JPanels diferentes sem ter q cria-los toda hora.
Qual as opinioes sobre esse metodo?? Seria mais pratico??

5 Respostas

M

Se forem iguais para várias telas, talvez uma classe que estenda JPanel com os seus botões ajude. Um pequeno painel que poderia ser adicionado em outros paineis, facilitando o trabalho.

S

Sera melhor fazer uma classe para cada botao com sobrecarga?
por exemplo, uma classe apenas para o botao gravar com varios metodos gravar(),
com diferentes quantidades de argumentos?

M

Depende da situação… esses botões editam o que exatamente? Por exemplo, poderia ser feito dessa forma (apesar de não ser a única forma de se fazer):

public class PainelEdicao extends JPanel {
    public PainelEdicao() {
        super();
        // inicializa os componentes
        JButton editar = new JButton("Editar");
        editar.addActionListener(new EditarListener()); // crio uma instância da inner class
        // inicializo e adiciono todos os componentes necessários
        add(editar);
    }

    // aqui a classe que comanda os eventos
    private class EditarListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            // TODO fazer algo aqui
        }
    }
}
dionat4n

Se for apenas botões como OK, CANCEL, etc é necessário apenas JOptionPane.(algum dialog):
http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html

rmendes08

Naoki, acho que você está caindo na mesma armadilha em que eu cai qdo comecei com OO. Parece óbvio o que vou dizer. O paradigma se chama Orientação a OBJETOS, e não Orientação à Classes. Assim, pense em termos de objetos, não em termos de classes. No caso dos botões Gravar, codifique cada um deles primeiro, e decida se vale a pena ou não criar uma classe para eles em uma refatoração. Vamos supor que você crie uma classe
BotaoGrava, com 4 versões do método gravar. Se você utilizar 4 objetos dessa classe e cada objeto utiliza recursos de uma única versão do método, concordo comigo que não tem sentido reuní-los em uma classe ? Em outras palavras, você vai introduzir uma complexidade desnecessária no seu sistema.

Criado 9 de fevereiro de 2009
Ultima resposta 9 de fev. de 2009
Respostas 5
Participantes 4