我为applet编写了一个程序,当您按下按钮时,该程序应该在文本框中显示不同的文本。我的程序在编译时没有错误,但是文本框显示不正确。我不知道这是怎么回事。这是我的代码

import java.awt.*;
import java.awt.event.*;

public class colors{
Button button1;
Button button2;
Button button3;
Label label1;
TextField objTextField1;

public static void main (String args[]){
colors c = new colors();
}
public colors() {
Frame f = new Frame ("Colors");
Button button1 = new Button("Blue");
button1.setBounds(10,305,120,75);
button1.addMouseListener(new MyMouseListener1());
Button button2 = new Button("Red");
button2.setBounds(140,305,120,75);
button2.addMouseListener(new MyMouseListener2());
Button button3 = new Button("Yellow");
button3.setBounds(270,305,120,75);
button3.addMouseListener(new MyMouseListener3());

f.add(button1);
f.add(button2);
f.add(button3);

label1 = new Label("Click a Button to Reveal Text");
label1.setBounds(20,105,200,25);
f.add(label1);


objTextField1 = new TextField("Which Color?", 15);
objTextField1.setBounds(20,75,125,50);
f.add(objTextField1);

f.add(label1);
f.add(objTextField1);

f.addWindowListener(new WindowAdapter()
{
    public void windowClosing(WindowEvent we){
        System.exit(0);
    }
});
f.setSize(400,400);
f.setVisible(true);
}
public class MyMouseListener1 extends MouseAdapter{
        public void mouseClicked(MouseEvent me){
            objTextField1.setText("Blue");
        }
    }
public class MyMouseListener2 extends MouseAdapter{
        public void mouseClicked(MouseEvent me){
            objTextField1.setText("Red");
        }
}

public class MyMouseListener3 extends MouseAdapter{
    public void mouseClicked(MouseEvent me){
        objTextField1.setText("Yellow");
        }
    }
}

最佳答案

单击Button时将触发ActionEvent

您应该使用ActionListener而不是MouseListener

public void actionPerformed(ActionEvent e) {
    ...//code that reacts to the action...
}


并且不要忘记添加

button.addActionListener(instance);

08-18 13:09