import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class myAction extends JFrame implements ActionListener {
myAction() {
super("Lab 4 Question 1");
Container c = getContentPane();
JPanel p = new JPanel();
JPanel p1 = new JPanel();
JButton b = new JButton("Button 1");
JButton b1 = new JButton("Button 2");
JButton b2 = new JButton("Button 3");
Font newFont = new Font("SERIF", Font.BOLD, 16);
b1.setFont(newFont);
b1.addActionListener(this);
JLabel l = new JLabel("Hello.");
p.add(b);
p.add(b1);
p.add(b2);
p1.add(l);
c.add(p);
c.add(p1);
c.setLayout(new FlowLayout());
setSize(300, 300);
show();
}
public static void actionPerformed (ActionEvent e) {
if(e.getSource().equals(b))
{
this.l.setText("Testing");
}
}
public static void main(String[] args) {
myAction output = new myAction();
}
}
如何讓我的JButton b1更改我的JLabel l的值?我對編程相當陌生,所以我很抱歉你們注意到任何錯誤!我只是需要它改變,只要我點擊按鈕,我認爲我有它的權利,但我的符號無法找到,我敢肯定我不應該通過他們的方法:S如何通過單擊我的JButton來更改JLabel文本?
啊,你已經失去了我,我不管怎樣,我都會試着弄明白,謝謝。 –
@DáithíCushen很簡單:當你實現ActionListener時'actionPerformed'不能是靜態的。其次,通過在其中一個按鈕的addActionListener方法中傳遞'this'關鍵字來添加'ActionListener'。第三,在構造函數之外移動這些'JButton'聲明(即'JButton b = new JButton(「Button 1」);')(以下簡稱:'class myAction extends JFrame implements ActionListener {')。 –