为什么我的 Jbutton 在点击时不执行任何操作?

Why won't my Jbutton do anything on click?

我一直在努力让我的按钮在点击时关闭框架,但它什么也没做。我浏览了几个 Whosebug 线程,但其中 none 似乎适用于我的这个..这是我目前所拥有的

    JButton start = new JButton("Start");
    start.setBounds(251, 216, 119, 23);

    start.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent evt) {

            try {
                int hpToEat = Integer.parseInt(GUI.textField.getText());
                Frost.hp = hpToEat;
            } catch(NumberFormatException nfe) {
                GUI.textField.setText("");
            }
            setVisible(false);
        }
    });
    contentPane.add(start);

我尝试制作一个使用 super.dispose(); 的 closeFrame 方法;我也试过 system.exit(0);

有谁知道为什么我的按钮不能执行我想要它执行的操作?

有人请求我的其余代码,所以这里是:

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JCheckBox;
import javax.swing.JTextField;
import javax.swing.JButton;


public class GUI extends JFrame{

private JPanel contentPane;
public static JTextField textField;


/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                GUI frame = new GUI();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public GUI() {

    //LABELS ===================================================================================================

问题是 GUI.textfield 不是你想的那样。您在此处遮挡字段:

JTextField textField = new JTextField();

这会创建一个名为 textFieldlocal 变量,它不会设置您在动作侦听器中使用的静态字段。一个快速的解决方法是只写:

textField = new JTextField();

但是,我建议改掉使用静态字段的习惯。这种方法无法扩展。此外,不要使用绝对定位。它会导致无穷无尽的麻烦(只需浏览 swing 标签中的几个问题以获取示例)。从一开始就学会使用布局管理器。