gpt4 book ai didi

java - 在实例对象中创建 JFrame

转载 作者:行者123 更新时间:2023-12-01 10:26:10 24 4
gpt4 key购买 nike

我正在尝试显示倒计时,我正在搜索如何执行此操作并尝试代码,但这不是我在这个问题中要问的内容,尽管如果您在这方面帮助我,我会很高兴面积也是如此。

这看起来有点简单,但我似乎无法显示 JFrame。我预测,如果我创建 testmain 的实例并且在构造函数中创建了 JFrame,它将显示 JFrame。

我什至尝试从键盘获取输入,以便它停止。但什么也没发生,程序立即结束。提示构建成功。

我错过了什么?

public class testmain
{
Timer t;
JLabel label;

public void testmain()
{

JFrame myFrame = new JFrame();
label = new JLabel();
myFrame.setSize(400, 400);
myFrame.setAlwaysOnTop(true);
myFrame.setLocationRelativeTo(null);

label.setText("This works");
myFrame.add(label);
myFrame.setVisible(true);
// Scanner keyboard = new Scanner(System.in);
// keyboard.nextInt();
// start();


}
void start()
{
t = new Timer(1000, new TimeTest());
}
class TimeTest implements ActionListener
{
private int counter = 0;
@Override
public void actionPerformed(ActionEvent e)
{
label.setText("" + counter++);

if(counter == 10)
t.removeActionListener(this);
}
}

public static void main(String[] args)
{
testmain tester = new testmain();


}
}

最佳答案

您有一个未被调用的伪构造函数。构造函数没有返回类型,不是 void,也不是任何类型。

改变

// this never gets called
public void testmain() {
}

// but this **will** be called
public testmain() {

}

顺便说一句,您将需要学习和使用 Java naming conventions 。变量名应全部以小写字母开头,而类名应以大写字母开头。学习并遵循这一点将使我们更好地理解您的代码,并且将使您更好地理解其他人的代码。

所以这个类实际上应该被称为TestMain:

public class TestMain {

public TestMain() {
// constructor code here
}

}

关于java - 在实例对象中创建 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352515/

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