Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA GUI标签输出错误 导入java.awt.EventQueue; 导入javax.swing.JFrame; 导入javax.swing.JButton; 导入javax.swing.JLabel; 导入java.awt.event.ActionListener; 导入java.awt.event.ActionEvent; 公开股{ 私有JFrame; /** *启动应用程序。 */ 公共静态void main(字符串[]args){ invokeLater(新的Runnable(){ 公开募捐{ 试一试{ 股票窗口=新股票(); window.frame.setVisible(true); }捕获(例外e){ e、 printStackTrace(); } } }); } /** *创建应用程序。 */ 公开股(){ 初始化(); } /** *初始化框架的内容。 */ 私有void初始化(){ frame=新的JFrame(); 机架立根(100450300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblBrickStock=新JLabel(“10”); 立根(48,62,46,14); frame.getContentPane().add(lblBrickStock); JButton btnNewButton=新JButton(“砖块”); addActionListener(新ActionListener(){ 已执行的公共无效操作(操作事件e){ int bricks=Integer.parseInt(lblBrickStock.getText()); 砖——; 如果(砖_Java_User Interface - Fatal编程技术网

JAVA GUI标签输出错误 导入java.awt.EventQueue; 导入javax.swing.JFrame; 导入javax.swing.JButton; 导入javax.swing.JLabel; 导入java.awt.event.ActionListener; 导入java.awt.event.ActionEvent; 公开股{ 私有JFrame; /** *启动应用程序。 */ 公共静态void main(字符串[]args){ invokeLater(新的Runnable(){ 公开募捐{ 试一试{ 股票窗口=新股票(); window.frame.setVisible(true); }捕获(例外e){ e、 printStackTrace(); } } }); } /** *创建应用程序。 */ 公开股(){ 初始化(); } /** *初始化框架的内容。 */ 私有void初始化(){ frame=新的JFrame(); 机架立根(100450300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblBrickStock=新JLabel(“10”); 立根(48,62,46,14); frame.getContentPane().add(lblBrickStock); JButton btnNewButton=新JButton(“砖块”); addActionListener(新ActionListener(){ 已执行的公共无效操作(操作事件e){ int bricks=Integer.parseInt(lblBrickStock.getText()); 砖——; 如果(砖

JAVA GUI标签输出错误 导入java.awt.EventQueue; 导入javax.swing.JFrame; 导入javax.swing.JButton; 导入javax.swing.JLabel; 导入java.awt.event.ActionListener; 导入java.awt.event.ActionEvent; 公开股{ 私有JFrame; /** *启动应用程序。 */ 公共静态void main(字符串[]args){ invokeLater(新的Runnable(){ 公开募捐{ 试一试{ 股票窗口=新股票(); window.frame.setVisible(true); }捕获(例外e){ e、 printStackTrace(); } } }); } /** *创建应用程序。 */ 公开股(){ 初始化(); } /** *初始化框架的内容。 */ 私有void初始化(){ frame=新的JFrame(); 机架立根(100450300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblBrickStock=新JLabel(“10”); 立根(48,62,46,14); frame.getContentPane().add(lblBrickStock); JButton btnNewButton=新JButton(“砖块”); addActionListener(新ActionListener(){ 已执行的公共无效操作(操作事件e){ int bricks=Integer.parseInt(lblBrickStock.getText()); 砖——; 如果(砖,java,user-interface,Java,User Interface,问题在这里: import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JLabel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Stock { private JFrame frame; /**

问题在这里:

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Stock {

    private JFrame frame;

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

    /**
     * Create the application.
     */
    public Stock() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel lblBrickStock = new JLabel("10");
        lblBrickStock.setBounds(48, 62, 46, 14);
        frame.getContentPane().add(lblBrickStock);

        JButton btnNewButton = new JButton("Bricks");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int bricks = Integer.parseInt(lblBrickStock.getText());
                bricks--;
                if (bricks <= 10) {
                    lblBrickStock.setText(String.valueOf(bricks));
                }
            }
        });
        btnNewButton.setBounds(38, 28, 89, 23);
        frame.getContentPane().add(btnNewButton);


    }

}
您试图解析为包含字符串的整数值。为避免出现异常,可以使用:
int bricks=Integer.parseInt(lblBrickStock.getText().replaceAll(“\\D+”,”);


但更好的方法是使用静态计数器(如注释中提到的@AxelH),而不是从JLabel获取值。

您可以使用实例成员
计数器
跟踪数字,而不是从标签文本获取当前值

int bricks = Integer.parseInt(lblBrickStock.getText());
你的行动听众可能是:

public class Stock{
    private int counter = 10;
    ...
}   
我点击了3次:

10
9
八,


如果您有一个计数器,您可以保留一个实例变量
int counter
,而不是从中的labelAnd获取当前值;)您的解决方案很好,但这不是真正可读的。@AxelH如果我是op,我将使用您的答案。+1同样,如果“file1”中还有像
123行这样的标签
。您的值将为
1231
;)当然,你是对的,但OP必须对代码有一些了解。我希望他能检查一下这段代码的作用。正如你所说,OP需要学习,你应该在多个语句中打断你的行,并解释
\\D
的意思;)嗨,很抱歉我周末没有处理这个问题。当我插入计数器变量时给出了一个错误。是否有办法解决此问题。我想可能是因为actionlistener方法?@PeterToole错误是什么?实例必须是实例成员,它不能是在保存行
btnNewButton.addActionListener(new actionlistener())的方法中定义的局部变量{…
我正在使用一个IDE,它说计数器不能解析一个变量。你是否像我一样在类中声明了
int counter
,@PeterToole?因为你似乎没有。是的,我输入了,它只是不识别它,我问了一个朋友,他们说这是因为ActionListener类似于它自己的私有方法像那样的争吵
btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        counter--;
        if (counter <= 10) {
            lblBrickStock.setText(counter + " remaining");
        }
    }
});
public class TestFrame extends JFrame{
    private int counter = 10;

    public TestFrame(){
        this.setTitle("Labo - TestFrame");
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        this.getContentPane().add(new JButton(new AbstractAction() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(counter--);
            }
        }));

        this.setVisible(true);
        this.pack();
    }
}