gpt4 book ai didi

java - 简单的Java GUI程序

转载 作者:行者123 更新时间:2023-12-01 18:06:18 25 4
gpt4 key购买 nike

由于某种原因,我的 JPanel 和 JTextField 没有出现。该程序唯一的任务是每次单击按钮时向计数器添加一个数字。没有编译错误或控制台问题。根本就没有出现?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Swing
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
final JFrame mainFrame = new JFrame ("Counter (Program 1/2)");
mainFrame.setVisible(true);
mainFrame.setSize(400, 200);
mainFrame.setLayout(new BorderLayout());
mainFrame.setLocationRelativeTo(null);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


JButton countButton = new JButton("Count up");
mainFrame.add(countButton, BorderLayout.SOUTH);

countButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
JTextField clicks = new JTextField(BorderLayout.CENTER);
JPanel firstPanel = new JPanel();
mainFrame.add(firstPanel);
mainFrame.add(clicks, BorderLayout.NORTH);
int counter = 1;
counter++;
String textField = String.valueOf(counter);
clicks.setText(textField);

}
});
}
});
}

}

最佳答案

不要将 JTextField 和 JPanel 添加到 ActionListener 内。这是没有意义的,因为每次按下按钮时您都会重新添加新组件。而是在 GUI 创建时添加它们,然后在 GUI 上调用 setVisible(true) 。然后更新 ActionListener 中文本字段的文本。

作为一个侧面建议:尝试通过为类提供字段、构造函数并从静态主方法中获取大部分代码来使类更加面向对象。

关于java - 简单的Java GUI程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36188895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com