URGENTE_Como puedo hacer funcionar tres botones cuyo objetivo es el de cambiar un mensaje?

Sanz
28 de Abril del 2006
Buenas,

Vuelvo ha ser la del comentario anterior.

He solucionado el problema de los botones, cambiando esto:

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);

por esto:

b1.addActionListener(mainFrame);
b2.addActionListener(mainFrame);
b3.addActionListener(mainFrame);

pero no entiendo cual es la diferencia entre ambos, es decir ¿qué hace this y que hace mainFrame?

No obstante, me continua sin funcioanar. No cambia el mensage del label cuando apretamos algun botón. No sé que hacer!!! Por favor, agradecería mucho aquél que me pudiera ayudar.

A continuación adjunto la parte del programa del método de la interfície ActionListener, ActionPerformed:

public void actionPerformed(ActionEvent e){
//Object BOTO = e.getSource();
String boto = e.getActionCommand();
if(boto=="Botó 'A'"){label.setText("Botó 'A'");}
if(boto=="Botó 'B'"){label.setText("Botó 'B'");}
if(boto=="Botó 'C'"){label.setText("Botó 'B'");}
}

o també:


public void actionPerformed(ActionEvent e){
if(get.Source()==b1){label.setText("Botó 'A'");}
if(get.Source()==b2){label.setText("Botó 'B'");}
if(get.Source()==b3){label.setText("Botó 'C'");}
}

Y los botones (b1, b2, b3) están declarados en el main como:

Button b1 = new Button("Botó 'A'");
Button b2 = new Button("Botó 'B'");
Button b3 = new Button("Botó 'C'");

Repito, Porfavooooooor, que alguien me ayude!!!!
No funlciona cap de les maneres.

daarevalo
28 de Abril del 2006
Se puede de dos formas:

1. En cada boton cuando lo inicia haga lo sig

Ej:

JButton b1=new JButton("Argumento 1")
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent evento)
{
label.setText("Cualquier maricada");
}
});

daarevalo
28 de Abril del 2006
La otra forma es mas larga y me da mamera explicarsela pruebe esa es suficiente para lo que necesita, haga lo mismo con cada boton

Sanz
28 de Abril del 2006
De la forma que me has indicado no fa resultados positivos, es mas me sale el siguiente error:

TresbotonsLabel is not abstractand does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener

I no sé que significa. No me sale!!!
Por favor, ¿me podrías indicar como es la otra manera? Si no es mucho molestar

Gracias

daarevalo
28 de Abril del 2006
para que vea lo amplio que soy ahi le mando un aplicativo para que entienda lo que le trato de explicar

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

public class CambioFrase extends JFrame
{
JTextField frase;
JButton b1,b2,b3;
public CambioFrase()
{

super("Cambio de Maricadas");
Container cont=getContentPane();
cont.setLayout(new FlowLayout());

frase=new JTextField("Maricada Inicial",10);
frase.setEditable(false);
cont.add(frase);

b1=new JButton("Cambio 1");
cont.add(b1);
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent evento)
{
frase.setText("Maricada 1");
}
});

b2=new JButton("Cambio 2");
cont.add(b2);
b2.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent evento)
{
frase.setText("Maricada 2");
}
});

b3=new JButton("Cambio 3");
cont.add(b3);
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent evento)
{
frase.setText("Maricada 3");
}
});
setSize(300,200);
setVisible(true);
}
public static void main(String args[])
{
CambioFrase ventana=new CambioFrase();
}
}

Suerte!!

METANO
28 de Abril del 2006
Un saludo!
mira estoy ojeando el contenido del foro y respecto a tu pregunta la solucion seria asi:
1. tienes que declarar y crear los objetos JButton de esta manera
JButton B1=new JButton("BOTON 1");
JButton B2=new JButton("BOTON 2");
JButton B3=new JButton("BOTON 3");

AHORA DE BERAS TENER UN JLabel que no es necesario declarar, simplemente lo construyas;
JLabel frase=new JLabel("lo que usted quiera");

ahora deberas dar un evebto a cada boton por separado osea un ActionListener como le dice el otro compañero no te paso el codigo completo pues no lo tengo a la mano pero dentro de ese evento va esto

frase=SetTex("cambio de frase");

respecto al error que te sale es por un parentesis que debe ir alli.
entra al api de java y busca el evente del boto y ya.

suerte.

si mañana tengo tiempo te envio el codigo.