Action no botão

3 respostas
T

Boa tarde.

Eu tenho o seguinte código:

package Suporte;

import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;


public class combo extends javax.swing.JFrame  {

    JComboBox combo = null;
    MyComboModel model = null;
    JButton btOK = null;

    public combo() {

        setTitle("Assunto");
        setLayout(new GridLayout(1, 3));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final ArrayList<String> ast = new ArrayList<String>();
        ast.add("Monitor");
        ast.add("Teclado");
        ast.add("Mouse");
        ast.add("Rede");
        ast.add("Internet");
        ast.add("Telefonia fixa");
        ast.add("Telefonia Movel");
        ast.add("Office");
        ast.add("Impressora");
        ast.add("Suporte Brassuco");
        ast.add("DataSul");
        ast.add("Est. Comercial");
        ast.add("Exactus");
        ast.add("IntraSystem");
        ast.add("InfoFisc");

        model = new MyComboModel(ast);

        combo = new JComboBox(model); //Aqui ele cria o combo...
        btOK = new JButton("OK"); //Aqui ele cria o botão...


        
        getContentPane().add(combo); //Aqui ele adiciona o combo...
        add(btOK); //Aqui ele adiciona o botão...


        pack();


    }
}

class MyComboModel extends DefaultComboBoxModel  {

    public ArrayList<String> ast = null;

    public MyComboModel(ArrayList<String> ast) {
        this.ast = ast;
    }

    @Override
    public Object getElementAt(int index) {
        return this.ast.get(index);
    }

    @Override
    public Object getSelectedItem() {
        return super.getSelectedItem();
    }

    @Override
    public int getSize() {
        return this.ast.size();
    }

}

Ele me gera um combobox + 1 botão, o que eu gostaria?
Quando clicasse no botão, ele chamasse outra classe JFrame criada…

Com um setVisible, mas como eu coloco esta ação no meu btOK?

3 Respostas

lucas_carvalho100

Um exemplo pra vc…

// Evento dos botões
		// Cancelar
		btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(java.awt.event.MouseEvent evt) {
				btnCancelarMouseClicked(evt);
			}
		});

private void btnCancelarMouseClicked(java.awt.event.MouseEvent evt) {
  //Aqui você faz o que vc quer.... 
}
barbon

Olá,

Existem duas maneiras de se fazer, vou comentar uma delas:

  1. Implementa ActionListener na sua classe:

public class MinhaClasse extends combo implements ActionListener {

  1. Adiciona o listener no componente:
btOK .addActionListener(this);
  1. Implementar o método actionPerformed:

public void actionPerformed(ActionEvent actionEvent) { //Impementa a ação de exibir o JFrame }

Lucas_Rinaldi

Eu faço sempre assim para tratamento de eventos, está ai uma opção.

Espero que te ajude!

public class ClasseBoa {

    private JButton btOK;

    public ClasseBoa() {
        btOK = new JButton("OK");
        initListeners();
    }
    
    public void initListeners() {
        btOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //Aqui você faz o que quiser para o botão...
                //Pode mandar ele tratar o evento em outro método ou nesse escopo...
            }
        });
    }
    private void btOKactionListener(ActionEvent evt) {
        //Ou aqui...
    }
}

Abraços!

Criado 7 de janeiro de 2011
Ultima resposta 7 de jan. de 2011
Respostas 3
Participantes 4