gpt4 book ai didi

java - JFrame代码编译并运行,但不打开窗口

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

在这里你会看到我的代码:我只是想制作一个显示“Hello, Java!”的小窗口。

我目前在 Ubuntu 14.04 上运行。为了更深入地解决我的问题,当我运行程序时,会显示带有咖啡杯的图标,就像有一个窗口一样,但没有附加窗口,如果单击,则不会弹出任何窗口。

任何帮助将不胜感激!

public class HelloJava1 extends javax.swing.JComponent
{
public static void main(String[] args)
{
javax.swing.JFrame f = new javax.swing.JFrame("HelloJava1");
f.setSize(300, 300);
f.getContentPane().add(new HelloJava1());
f.setVisible(true);
}

public void paintComponent(java.awt.Graphics g)
{
g.drawString("Hello, Java!", 125, 95);
}
}

此外,我正在使用 javac HelloJava1.java 通过命令行进行编译,并使用 java HelloJava1 运行。

我正在通过 gedit 编写代码。

最佳答案

这段代码应该可靠地工作:

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

public class HelloJava1 extends JComponent {

public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
JFrame f = new JFrame("HelloJava1");
// f.setSize(300, 300); better to pack() the frame
f.getContentPane().add(new HelloJava1());
// pack should be AFTER components are added..
f.pack();
f.setVisible(true);
}
};
// Swing GUIs should be created and updated on the EDT
SwingUtilities.invokeLater(r);
}

@Override // good practice..
public void paintComponent(java.awt.Graphics g) {
// always call super method 1st!
super.paintComponent(g);
g.drawString("Hello, Java!", 125, 95);
}

// instead of setting the size of components, it is
// better to override the preferred size.
@Override
public Dimension getPreferredSize() {
return new Dimension(300,300);
}
}

关于java - JFrame代码编译并运行,但不打开窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965176/

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