Criando ação para um botão

12 respostas
P

Boa tarde,
infelizmente faltei a aula que me explicaria sobre isso e estou correndo atrás de tudo.

Até agora já entendi como fazer text field, botoes e fazer os mesmos aparecerem.

O problema é o seguinte, como faço para um botão ao ser acionado fazer um comando x ?

exemplo

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;

public class Janela extends Frame {

    private Button b1;
    private TextField t1,t2;
    
    private void initComponents()
    {
        this.setLayout(new FlowLayout());
        b1 = new Button("OK");
        this.add(b1);
        t1 = new TextField();
        t1.setColumns(30);     
        this.add(t1);
        this.setTitle("Minha Janela");
        t2 = new TextField();
        t2.setColumns(30);
        this.add(t2);
        t2=t1;
        this.pack();
    }
    
    public Janela() {
        initComponents();
    }
    
    public static void main(String args[])
    {
        //Janela janela = new Janela();
        //janela.setVisible(true);
        new Janela().setVisible(true);
    }

}

como faço para o b1 pegar o t1 multiplicar por 2 e tacar no t2?

muito obrigado desde já :D

valeu!

12 Respostas

hesenger

vc tera que criar uma classe que implementa a interface ActionListener,
e adicionar uma instancia dela usando o metodo:

b1.addActionListener(instanciaDaSuaClasse);

se não me falha a memória é isso, estou sem jdk pra conferir, ve ai e
fala qualquer coisa.

M

b1.addActionListener(new ActionListener() { // import java.awt.event.*; public void actionPerformed(ActionEvent ev) { int resultado = Integer.parseInt(t1.getText()) * 2; t2.setText(resultado); //talvez tenha que converter para String } });

espero ter ajudado.

[]s

P

Ola marcus,

olha soh seu codigo me volta um erro sobre o ActionListener();

o erro que volta é "ActionListener cannot be resolved to a type"

eu estaria colocando esse codigo no lugar errado ?

observe por favor.
import java.awt.Button;
import java.awt.*;
import javax.swing.JFrame;

public class jana {
public static void main (String args[]){
	JFrame frame = new JFrame("Digite um numero");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.getContentPane();
	frame.setVisible(true);
	frame.setLayout(new FlowLayout());
    Button b1 = new Button("OK");
    frame.add(b1);
    
    TextField t1 = new TextField();
    t1.setColumns(30);     
    frame.add(t1);
    TextField t2 = new TextField();
    t2.setColumns(30);
    frame.add(t2);
    frame.pack();
    
    b1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ev) {  
    int resultado = Integer.parseInt(t1.getText()) * 2;  
    t2.setText(resultado);  

}
hesenger

faltou o import que ele colocou no comentario do lado:

b1.addActionListener(new ActionListener() {       // import java.awt.event.*;
P

eu importei todos awt com “*” sacou ?
abracos

hesenger

pedrolima88:
eu importei todos awt com “*” sacou ?
abracos

acho que foi awt.event.* que vc quis dizer.

P

cara eu acho que desse jeito que eu fiz ele importa tmb o events… mas vouver aqui

Marky.Vasconcelos

Sim é diferente… o primeiro importa todas as classes do pacote java.awt e o segundo do pacote java.awt.event

P

af malz, oensei que importava todas ate “subclasses”

P

Bom, alguem tem ideia de como fazer um casting aqui ?

b1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ev) {  
    int resultado = Integer.parseInt(t1.getText()) * 2;  
    t2.setText(resultado);

?

ele diz que o setText necessita ter o resultado alterado para sstring, caso eu troque o resultado pede para ser int :T

e agora? o que fazer? :frowning:

tentei por casting na frente do int(resultado) mas nao pegou :T

valeu

M

t2.setText(String.valueOf(resultado));

Acho que é isso.

P

Bom, antes de mais nada gostaria de agradecer a todos que leram esse topico e exclusivamente aos que me ajudaram.

Deu certo e esta rodando sem erros:D

valeu pessoal! abracos.

Criado 3 de novembro de 2008
Ultima resposta 4 de nov. de 2008
Respostas 12
Participantes 4