[RESOLVIDO] iniciante ... Um botão OK, dois botões erro!

2 respostas
Odyo

Gente,

comecei a fazer alguns exercícios aqui para em familiarizar com interface gráfica e pra começar a aprender … ! :roll:

resolvi pegar uma classe pilha que eu tenho e fazer botões e tal só pra aprender mesmo … !

Consegui colocar um JTextField pra exibir os elementos de uma pilha
um campo pra digitar os elementos a serem empilhados e dois botões
um pra EMPILHAR e o outro para DESEMPILHAR !

consegui fazer o primeiro botão funcionar legal … ao clicar o elemento na caixa de texto é empilhado … entretanto não sei como atribuir uma função diferente para o 2º botão …

a dúvida é justamente esta, como atribuir várias funções diferentes para botões diferentes … ?

vou postar o código e gostaria de ajuda e algumas dicas pra saber o que fiz de errado …

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Adiciona extends JApplet implements ActionListener
{
    Pilha P = new Pilha();

    // componentes graficos
    JLabel E_pilha,numero;
    JTextField T_adiciona;
    JTextField T_pilha;
    JButton B_empilha,B_desempilha;
    
    public void init()
    {
        Container pacote = getContentPane();
        pacote.setLayout(new FlowLayout());
        
        E_pilha=new JLabel("PILHA");
        pacote.add(E_pilha);
        
        T_pilha= new JTextField(20);
        T_pilha.setEditable(false);
        pacote.add(T_pilha);
        
        numero = new JLabel("Número : ");
        pacote.add(numero);
        T_adiciona = new JTextField(3);
        T_adiciona.setEditable(true);
        pacote.add(T_adiciona);
        
        
        // Botao empilha
        B_empilha = new JButton("Empilhar");
        B_empilha.addActionListener(this);
        pacote.add(B_empilha);
        
        // Botao desempilha
        B_desempilha = new JButton("Desempilhar");
        B_desempilha.addActionListener(this);
        pacote.add(B_desempilha);
        
        
    }
    
    public  void actionPerformed(ActionEvent e)
    {
        P.empilha(Integer.parseInt(T_adiciona.getText()));
        T_pilha.setText(P.toString());
    }
        
    
}// Fim Classe adiciona

2 Respostas

Marky.Vasconcelos

duas soluções

public class Botoes extends JFrame implements ActionListener{ JButton b1; JButton b2; public Botoes(){ super("Botoes"); JPanel a = new JPanel(); add(a); b1 = new JButton("b1"); b2 = new JButton("b2"); b1.addActionListener(this); b2.addActionListener(this); a.add(b1); a.add(b2); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource() == b1){ //realiza função do primeiro } if(e.getSource() == b2){ //realiza função do segundo } } }

ou

public class Botoes extends JFrame { JButton b1; JButton b2; public Botoes(){ super("Botoes"); JPanel a = new JPanel(); add(a); b1 = new JButton("b1"); b2 = new JButton("b2"); b1.addActionListener(new ActionListener(){ public void ActionPerformed(ActionEvent e){ //realiza metodos do b1 } }); b2.addActionListener(new ActionListener(){ public void ActionPerformed(ActionEvent e){ //realiza metodos do b2 } }); a.add(b1); a.add(b2); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } }

Mas é recomendado o primeiro exemplo
além de deixar o código mais limpo e legivel

Odyo

valeu pela dica ! vou dar uma estudada a mais nos métodos
dos Events pra aprender a usar direitinho !

.getSource() …

Ajudou bastante ! :smiley:

Criado 2 de agosto de 2007
Ultima resposta 2 de ago. de 2007
Respostas 2
Participantes 2