Criando ação para um botão

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

[code]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);
}

}[/code]

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

muito obrigado desde já :smiley:

valeu!

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.

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

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.

[code]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);  

}
[/code]

faltou o import que ele colocou no comentario do lado:

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

eu importei todos awt com “*” sacou ?
abracos

[quote=pedrolima88]eu importei todos awt com “*” sacou ?
abracos[/quote]

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

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

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

af malz, oensei que importava todas ate “subclasses”

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

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

Acho que é isso.

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.