我在Java中有點新手,我遇到了一個錯誤,試圖將活動監聽器添加到我的GUI中的按鈕。這是一個相當簡單的圖形用戶界面,如果沒有一點混亂。現在,只有一個標籤,按鈕和文本區域。我正在嘗試做的是,在按鈕上單擊它,然後從文本區域輸入內容,然後更改標籤以響應該內容。這是一個非常簡單的想法......但對於一個新來者來說,它非常令人煩惱。我主要是自學成才,每當我嘗試添加一個活躍的聽衆時,我都會遇到很多問題。向JButton添加一個動作監聽器
我認爲我所有嘗試添加主動偵聽器都無法使用,所以我拿出了我的嘗試。這段代碼只是GUI。除了啓動代碼之外,沒有什麼會發生。我的問題是:我將如何添加一個活動的偵聽器和響應代碼?
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class IgnisTest extends JFrame {
JPanel pnlButton = new JPanel();
JButton say = new JButton("Say");
JLabel output = new JLabel("This is a test");
JTextField input = new JTextField();
public IgnisTest() {
pnlButton.setBackground(Color.black);
say.setPreferredSize(new Dimension(100, 25));
input.setPreferredSize(new Dimension(100, 25));
pnlButton.add(say);
pnlButton.add(input);
JPanel pnlWrapper = new JPanel(new GridBagLayout());
pnlWrapper.setBackground(Color.black);
GridBagConstraints constraints = new GridBagConstraints();
pnlWrapper.add(pnlButton, constraints);
JPanel pnlLeft = new JPanel();
pnlLeft.setBackground(Color.black);
add(pnlWrapper, BorderLayout.SOUTH);
add(pnlLeft, BorderLayout.CENTER);
pnlLeft.add(output);
output.setForeground(Color.white);
setSize(400, 600);
setTitle("Ignis");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new IgnisTest();
}
}
感謝找到有關匿名類的詳細信息!我之前嘗試了幾乎這個確切的代碼(我沒有output.setText(input.getText());只是設置爲將標籤更改爲測試),但我缺少@Override。我真的很感激它:直到現在我有兩個程序,一個GUI和沒有界面的程序(使用scanner和println代替)我真的很感謝幫助 – Prometheus
歡迎您!順便說一句,'@ Override'不是強制性的。它指示編譯器,您打算覆蓋超類中的方法。您可以在https://docs.oracle.com/javase/tutorial/java/IandI/override.html找到更多詳細信息。 – shan1024