gpt4 book ai didi

javax swing - 创建窗口

转载 作者:行者123 更新时间:2023-11-29 10:17:08 25 4
gpt4 key购买 nike

我是 Java 的初学者,正在学习 swing api。我的代码有问题,我不知道如何修复它。请帮忙。

下面是我使用的代码示例:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloWorldApp extends JFrame {


public static void main(String args[]) {

CustomWindow w = new CustomWindow();
w.setVisible(true);

}

public CustomWindow() {

setSize(500, 500);
setTitle("Jacob Perkins");
JLabel lbl = new JLabel("Hello World!");
add(lbl);

}

}

我的问题是出现以下错误:

invalid method declaration; return type required

最佳答案

public CustomWindow() {
setSize(500, 500);
setTitle("Jacob Perkins");
JLabel lbl = new JLabel("Hello World!");
add(lbl);
}

应该是:

public void CustomWindow() {
setSize(500, 500);
setTitle("Jacob Perkins");
JLabel lbl = new JLabel("Hello World!");
add(lbl);
}

或者代替 void(不返回任何内容),我们将放置我们想要返回的数据类型。该方法现在必须包含一个 return 语句,该语句返回一个适当的数据类型以匹配方法签名,否则您将得到您遇到的错误:

invalid method declaration; return type required

参见 Returning a Value from a Method .

除非您尝试为 HelloWorldApp 类创建构造函数,否则必须为该方法指定类名(阅读 Providing Constructors for Your Classes ):

public HelloWorldApp() {
setSize(500, 500);
setTitle("Jacob Perkins");
JLabel lbl = new JLabel("Hello World!");
add(lbl);
}

其他建议

  • 不要不必要地扩展 JFrame

  • 不要调用 setSize 而是使用正确的 LayoutManager 和/或覆盖 getPreferredSize 并返回 Dimension适合它的内容。比在将 JFrame 设置为可见之前但在添加组件之后调用 pack()

  • Event Dispatch Thread 上创建和操作 Swing 组件通过 SwingUtilities.invokeLater(Runnable r) block :

    SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
    //create and show ui here
    CustomWindow w = new CustomWindow();
    w.setVisible(true);
    }
    });

关于javax swing - 创建窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633086/

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