如何在 main 方法中添加一个 ActionListener
How to add an ActionListener during the main method
我试图制作一个程序来计算 TextField 的数量。要让它开始计算,你必须按下一个按钮,为此我必须向按钮添加一个 ActionListener 但据我所知这是不可能的,因为你不能使用 this 在静态上下文中。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public abstract class math extends JFrame implements ActionListener {
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("text");
JPanel mainPanel =new JPanel();
JLabel mainLabel = new JLabel("text");
JTextField mainField = new JTextField(5);
button.addActionListener(this);
mainPanel.add(mainLabel);
mainPanel.add(mainField);
mainPanel.add(button);
frame.setTitle("text");
frame.setSize(1000, 700);
frame.setVisible(true);
frame.add(mainPanel);
//when the button something gets done here
double num = Double.valueOf(mainField.getText());
num * 4;
}
}
我知道如何编写一个不在 main 方法中的 ActionListener,但它必须在这里,至少我是这么认为的。我希望在缩短代码时我没有删除其中的一些重要部分。
选项 1:实例化一个实现 ActionListener
的对象
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// whatever you need to do
System.out.println("The button was pressed!");
}
});
选项 2:使用 lambda 函数(Java8 或以上)
button.addActionListener(e -> {
// whatever you need to do
System.out.println("The button was pressed!");
});
我试图制作一个程序来计算 TextField 的数量。要让它开始计算,你必须按下一个按钮,为此我必须向按钮添加一个 ActionListener 但据我所知这是不可能的,因为你不能使用 this 在静态上下文中。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public abstract class math extends JFrame implements ActionListener {
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("text");
JPanel mainPanel =new JPanel();
JLabel mainLabel = new JLabel("text");
JTextField mainField = new JTextField(5);
button.addActionListener(this);
mainPanel.add(mainLabel);
mainPanel.add(mainField);
mainPanel.add(button);
frame.setTitle("text");
frame.setSize(1000, 700);
frame.setVisible(true);
frame.add(mainPanel);
//when the button something gets done here
double num = Double.valueOf(mainField.getText());
num * 4;
}
}
我知道如何编写一个不在 main 方法中的 ActionListener,但它必须在这里,至少我是这么认为的。我希望在缩短代码时我没有删除其中的一些重要部分。
选项 1:实例化一个实现 ActionListener
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// whatever you need to do
System.out.println("The button was pressed!");
}
});
选项 2:使用 lambda 函数(Java8 或以上)
button.addActionListener(e -> {
// whatever you need to do
System.out.println("The button was pressed!");
});