为什么我的Jbutton不会在点击上做任何事情?

时间:2015-06-09 19:35:09

标签: java swing user-interface onclick jframe

我一直在尝试这样做,所以我的按钮会在点击时关闭框架,但它从不做任何事情。我已经查看了几个stackoverflow线程,但它们似乎都不适用于我的...这是我到目前为止所拥有的

    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 ===================================================================================================

1 个答案:

答案 0 :(得分:3)

问题是double不是您认为的那样。你在这里遮蔽了这个领域:

GUI.textfield

通过名称JTextField textField = new JTextField(); 创建本地变量,它不会设置您在动作侦听器中使用的静态字段。快速修复就是写:

textField

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