Chamando uma outra classe através do Botão

4 respostas
M

Olá a todos tenho uma duvida referente a colocar um evento em um botão da maneira que ele chame uma outra classe através do metodo ActionPerformed o maximo que consegui foi declarar o:

if (e.getSource()==btCadastro){

alguém pode me ajudar
Agradeço a todos!!!

4 Respostas

H

Bom cara legal seria se você postasse o código inteiro,

Mas vamos lá

Primeiro é bom vc ter certeza de que adicionou o botão ao listener. Assim

botao.addActionListener(this);

depois vc continua com o seu código.

if(evento.getSource() == botao) { Classe classe = new Classe();// instancia a classe }

ou

if(evento.getSource() == botao) { int inteiro = new Classe().calculo();// supondo que o método cálculo retorne um inteiro }

espero ter ajudado.

marcospaulo.suporte

Poderia postar o codigo de sua classe?
Está usando alguma IDE?

M
Valeu Amigo!!! o codigo abaixo é da classe que Login que contem um botão chamado Btcadastro que apartir dele eu quero chamar a tela da classe Aplicacao
import java.awt.Font;
import java.awt.event.*;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import java.awt.ActiveEvent;


public class Login extends JFrame implements ActionListener{
	
	JLabel id, pwd, titulo;
	JButton btEntrar, btCadastro, btSair;
	JTextField tfID;
	JPasswordField tfPWD;
	
	public JFrame cons;
	Login(){
		
		setTitle("Login");
		setSize(290, 195);
		setLocationRelativeTo(null);
		setResizable(false);
		getContentPane().setLayout(null);
		
		titulo = new JLabel ("Dados do Usuário:");
		titulo.setFont(new Font("SansSerif", Font.BOLD, 15));
		id = new JLabel("Usuário:");
		pwd = new JLabel("Senha:");
		btEntrar = new JButton("Entrar");
		btCadastro = new JButton("Cadastro");
		btSair = new JButton("Sair");
		
		tfID = new JTextField();
		tfPWD = new JPasswordField(12);
		tfPWD.setEchoChar('*');
		
		btEntrar.addActionListener(this);
		btCadastro.addActionListener(this);
		btSair.addActionListener(this);
		
		getContentPane().add(titulo);
		getContentPane().add(tfID);
		getContentPane().add(tfPWD);
		getContentPane().add(id);
		getContentPane().add(pwd);
		getContentPane().add(btEntrar);
		getContentPane().add(btCadastro);
		getContentPane().add(btSair);
		
		getRootPane().setDefaultButton(btEntrar);
		
		titulo.setBounds(85, -15, 140, 90);
		id.setBounds	(25, 50, 70, 25);
		tfID.setBounds	(85, 50, 180, 22);
		pwd.setBounds	(24, 80, 70, 25);
		tfPWD.setBounds	(85, 80, 180, 22);
	  btEntrar.setBounds(20, 110, 70, 25);
	btCadastro.setBounds(103, 110, 90, 25);
		btSair.setBounds(205, 110, 60, 25);
		
		
	}
	
	
	 

public void actionPerformed(ActionEvent e){
		
		if(e.getSource() == btEntrar){
			if(tfID.getText().equals("mcmarcelosp") && new String(tfPWD.getPassword()).equals("mc1209")){
				
				setVisible(true);
				JOptionPane.showMessageDialog(null, "Acesso Permitido");
				
				
				tfID.setText("");
				tfPWD.setText("");
				setVisible(false);
				
				
			}
			else{
				JOptionPane.showMessageDialog(null, "Senha ou Usuário Incorreto.", "Acesso Negado", 0);
				tfID.setText("");
				tfPWD.setText("");
			}
		}
		
		
		
		
		if (e.getSource()== btSair){
			setVisible(false);
		}

}
	
		
		
		
			public static void main(String[] args){
				JFrame janela = new Login();
				janela.setVisible(true);
				janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Abaixo a classe que eu quero chamar:
import javax.swing.*;

import java.awt.*;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.ActiveEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Aplicacao extends JFrame implements ActionListener {
	
	 





	public Aplicacao (){
		 
	super("Sistema Instrumentos Musicais");
	
	Container Cont = getContentPane();
	
	JLabel status = new JLabel();  
    status.setBorder(BorderFactory.createLineBorder(Color.BLACK));  
      
    status.setIcon(new ImageIcon("C:/Users/Marcelo/Desktop/imagem/imagem.jpg"));  
     
 
	  
	
	JButton BtCadastrar = new JButton("Cadastrar");
	
	JButton BtPesquisar = new JButton("Pesquisar");
	JButton BtTabela = new JButton("Tabela");
	JButton BtAcessorios = new JButton("Acessorios");
	BtCadastrar.addActionListener(this);
	
	setLayout(null);
	
	Cont.add(BtCadastrar);
	Cont.add(BtPesquisar);
	Cont.add(BtTabela);
	Cont.add(BtAcessorios);
	Cont.add(status); 
	
	BtCadastrar.setBounds(40, 50, 100, 50);
	BtPesquisar.setBounds(185, 50, 100, 50);
	BtTabela.setBounds(335, 50, 100, 50);
	BtAcessorios.setBounds(480, 50, 100, 50);
	
	status.setBounds(30, 130, 560, 350);
	
	setSize(630,550);
	setVisible(true);
	 }
	
	 
	
			
		
	
	
	
	 private void setIconImage(ImageIcon imageIcon) {
		
		
	}

	public static void main (String args[]){
		 javax.swing.SwingUtilities.invokeLater(
				 new Runnable() {
					 
					 public void run(){
						 
						 JFrame.setDefaultLookAndFeelDecorated(true);
						 
						 Aplicacao VISUAL = new Aplicacao();
						 VISUAL.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
					 }
				 }
					 );
				 
					 }



	
		
	}
Pessoal estou usando o eclipse ok!!! Valeu!!! Aguardo as dicas um abraço a todos!!!
H

é só vc instanciar a classe que vc quer chamar dentro do if, assim após validar o usuário ele irá abrir a nova janela. Veja:

if(e.getSource() == btEntrar){   
            if(tfID.getText().equals("mcmarcelosp") && new String(tfPWD.getPassword()).equals("mc1209")){   
                   
                setVisible(true);   
                JOptionPane.showMessageDialog(null, "Acesso Permitido");   
                   
                   
                tfID.setText("");   
                tfPWD.setText("");   
                setVisible(false);   // aqui você pode trocar pelo método DISPOSE uma vez que não será necessário usar a tela de logon novamente. Pesquise sobre.
                
                new Aplicacao();
                   
            }
Criado 3 de dezembro de 2012
Ultima resposta 4 de dez. de 2012
Respostas 4
Participantes 3