Herdar comandos

Tenho um botão Excluir e no ActionPerformed eu tenho meus códigos…

private void jButtonExcluirActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: // Comandos }

Criei um outro botão que terá os mesmos códigos do botão acima. Como eu herdo os comandos do outro botão?

private void jMenuItemExcluirActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
            
}

Olá!

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…

Abraço!

cassio,

É q eu vim do Delphi e dava para fazer isso…

Obrigado pela ajuda!

abs.

Olá Adriano !

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”…

Espero ter ajudado
Divirta-se!

Adriano

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.

Abçs

Logan