我已經得到了一些幫助,但現在當我按下按鈕時,什麼也沒有發生。我想要單擊按鈕時顯示文本。如果是佈局問題,我應該使用哪一個? FlowLayout
不適用於此程序,因爲它會扭曲按鈕。在ActionEvent中使用多個按鈕
import java.awt.*;
import java.awt.event.*;
public class Option3 extends Frame implements WindowListener,ActionListener
{
Label l1;
Label l2;
Label l3;
Button b1;
Button b2;
Button b3;
public static void main(String[] args)
{
Option3 o3 = new Option3("Press a Button");
o3.setSize(700,350);
o3.setVisible(true);
}
public Option3(String option3)
{
super(option3);
setLayout(null);
addWindowListener(this);
Label l1 = new Label();
l1 = new Label();
l1.setBounds(50,150,125,50);
l1.setVisible(true);
add(l1);
Label l2 = new Label();
l2 = new Label();
l2.setBounds(275,150,125,50);
l2.setVisible(true);
add(l2);
Label l3 = new Label();
l3 = new Label();
l3.setBounds(500,150,125,50);
l3.setVisible(true);
add(l3);
Button b1 = new Button();
b1 = new Button();
b1.addActionListener(this);
b1.setBounds(25,100,175,175);
add(b1);
Button b2 = new Button();
b2 = new Button();
addWindowListener(this);
b2.addActionListener(this);
b2.setBounds(250,100,175,175);
add(b2);
Button b3 = new Button();
b3 = new Button();
b3.addActionListener(this);
b3.setBounds(475,100,175,175);
add(b3);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == b1)
{
l1.setText("You pressed button 1.");
}
else if (e.getSource() == b2)
{
l2.setText("You pressed button 2.");
}
else if (e.getSource() == b3)
{
l3.setText("You pressed button 3.");
}
}
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
}
我這樣做,但它仍然沒有顯示標籤 –
首先,如果你沒有改變它,你需要添加一個動作監聽器到你的按鈕,例如'b1.addActionListener(本);'。其次,所有的類變量仍然是'null',因爲你正在創建本地對象'Button b1 = new Button();'而不是初始化類變量'b1 = new Button();'。第三,你將標籤的寬度和高度設置爲0,0。用l1.setBounds(10,10,50,50);'x,y = 10,10和width,height = 50,50調整它的大小。你可以玩這些值。 – yate
我發佈了我的更新代碼 - 也許你可以幫助一旦你看到整個事情。 –