Oi gente, tudo ok ?
Retomei meus estudos de java recentemente, depois de muito tempo parado.
Estou ainda engatinhando. Estou lendo “<JAVA> guia prático para programadores”, da editora Elsevier. Pra mim parece ser um bom começo.
Minha maior experiência em relação a orientação a objetos é com o Visual foxpro da microsoft, o qual domino desde sua versão 5 ( está na 8).
Meu foco principal no java tem sido na criação de GUIs, processo que segundo o livro é bem trabalhoso, comparado com a facilidade da RAD do VFP. Bom, uma das minhas dúvidas é a seguinte :
No livro tem um exemplo que implementa os linsteners na definição da classe principal JPaine. Assim, exite um único método ActionListener para todos os objetos contidos nesta classe principal. Cabe ao único método identificar o objeto que foi clicado, e aí tomar a ação correta. Até aí tudo bem. Mas em um Paine com um monte de botões, menus, etc…, o negócio ficaria meio esquisito. Vi que fazer o seguinte funciona :
[color=“darkred”]Arquivo TelaPrincipal
import javax.swing.;
import java.awt.Container;
import java.awt.event.;
import java.awt.FlowLayout;
public class Tela extends JFrame implements ActionListener {
MeuBotao bot3 = new MeuBotao("Alterar");
Container cp = getContentPane();
public Tela() {
cp.setLayout(new FlowLayout());
cp.add(bot3);
cp.setSize(100,100);
cp.setVisible(true);
setTitle("Aplicação de Gestão de Contas Bancárias");
}
}
Arquivo MeuBotao.java
import javax.swing.;
import java.awt.event.;
public class MeuBotao extends JButton implements ActionListener {
public MeuBotao(String caption) {
super(caption);
this.addActionListener(this);
System.out.println(“Ouvi…”+(char) 75);
}
public void actionPerformed( ActionEvent e) {
System.out.println("Ouvi meu botao....."+(char) 75);
}
}[/color]
Nesse exemplo, eu adicionaria um listener para cada objeto, ficando assim bem mais fácil entender o código.
Minhas perguntas :
Isto está correto ?
Ter um monte de listeners diferentes consumiria muita memória,
tornando esse método inviável ?
Qual seria a melhor maneira ?
Valeu pela atenção de vocês !