[英]Adding an action listener to JButton
我對Java的新手有點了解,但是在嘗試向GUI中的按鈕添加活動的偵聽器時遇到錯誤。 這是一個相當簡單的GUI,即使有點混亂。 現在,只有標簽,按鈕和文本區域。 我正在嘗試做的是在按鈕上單擊以使其從文本區域中輸入內容,並更改標簽以對其進行響應。 這是一個非常簡單的主意...但是對於一個新來的人來說,這非常令人討厭。 我主要是自學成才,每當嘗試添加積極的傾聽者時,我都會遇到很多問題。
我以為我添加活動監聽器的所有嘗試都以失敗告終,所以我放棄了嘗試。 這段代碼就是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();
}
}
最簡單的方法是使用像這樣的匿名類。
say.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
output.setText(input.getText());
}
});
您可以在https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html上找到有關匿名類的更多詳細信息。
使用anonumousinnerclass或實現ActionListener來添加actionListener
say.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(input.getText());
//do your logic
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.