Para que herdar a ação de um botão para outro?!
Crie um método separado e em uma única linha chame este método de dentro do actionPerformed de qualquer botão…
Sei o que está tentando fazer. Trabalho com Delphi à anos e desenvolvo em Java. Essa técnica de herança na interface era uma mão na roda com relação à produtividade, mas em contra partida quando a quantidade de forms herdados era grande, a coisa começa à girar na base da criatura dominando o criador. Por mais tratamento que se faça e conhecimento lógico que se aplique, esse tipo de técnica não é aconselhável para uma aplicação robusta.
A outra questão, é que essa técnica estruturada talvez não se aplique à uma plataforma orientada à objeto como Java.
Se conseguir me avise, pois tenho uma amigo desenvolvendo uma aplicação swing que vem tentando técnicas para fazer isso.
Se eu entendi bem o que vc quer fazer, parece que é algo tipo compartilhar ações, ou seja, já que dois componentes gráficos têm a mesma funcionalidade, manter “um único” código para o evento dos dois. Certo?
Vamos supor que o seu botyão e o seu item de menu sejam para finalizar seu programa. JButton e MenuItem são classes que permitem que vc “registre” um objeto ActionListener, que será responsável por tratar eventos do tipo ActionEvent disparados por objetos daquelas classes.
O método que faz esse registro é o método addActionListener(ActionListener), presente em diversas classes de componentes gráficos, como a JButton e a MenuItem, que utilizamos aqui. Este método recebe por parâmetro um objeto de uma classe que implemente a interface ActionListener, como creio que vc já o saiba.
Uma saída para o seu caso, seria criamos uma classe como a seguinte:
package adriano.silva;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ExitHandler implements ActionListener {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
}
Tendo uma classe como esta, vc pode registrar instâncias dela no seu botão e no seu item de menu:
...
JButton btnExit = new JButton("Exit");
btnExit.addActionListener(new ExitHandler());
...
MenuItem mitExit = new MenuItem("Exit");
mitExit.addActionListener(new ExitHandler());
...
Desta forma, vc tem em um local centralizado o código que rege a ação referente ao evento disparado pelo botão e pelo item de menu. Acho que isso seria algo próximo ao tal “herdar comandos”…
eu já fiz isso, mas fiz da seguinte maneira 1º eu coloquei o código pra executar a ação no JMenuItem
private void jmiListarFilmesActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int i = 0;
Vector teste = dao.buscaDados(i);
Dialogo dg = new Dialogo(new javax.swing.JFrame(), true);
dg.setListaDeFilmes(teste);
dg.setVisible(true);
}
depois eu fui no JButom e chamei o mesmométodo do JMenuItem dessa forma:
private void jbtListarFilmesActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.jmiListarFilmesActionPerformed(evt);
}
não sei se é a forma mais profissional de se fazer mas funciona muito bem.