gpt4 book ai didi

java - 如何构造 JFrame 子类?

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

我正在尝试从 JFrame 创建一个子类。我认为我做得正确,但是当我运行它时,它会打开一个没有名称或背景颜色的空白窗口(我的 JPanel 类执行背景。但是,我知道错误不存在,因为我注释掉了add(Jpanel) 和窗口仍然没有名称)Eclipse 也没有显示任何语法错误。为什么此代码不起作用?:

主类:

package ashwin.engine;
import javax.swing.*;
import java.awt.*;
public class Execute {

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){

@Override
public void run() {
int[] bcolor = new int[3];
bcolor[0] = 254;
bcolor[1] = 0;
bcolor[2] = 0;
Window wndw = new Window("Test", 1000, 1000, bcolor, true);

} });

}

}

JFrame 子类:

package ashwin.engine;
import javax.swing.*;
import java.awt.*;
public class Window extends JFrame {
Window(String name, int width, int length, int[] backgroundColor, boolean visible) {

System.out.println("made it to frame class");

setName(name);
setVisible(visible);
setSize(width, length);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Display display = new Display(backgroundColor);


}
}

编辑:忘了提及,它确实打印出了我的调试语句“使其成为框架类”,不知道这是否有帮助,但我认为我应该指出这一点。

最佳答案

您不应使用setName,而应使用setTitle。这将有效地在屏幕上显示名称。对于背景,您应该使用 getContentPane().setBackgroundColor(Color color)

chode 应该如下所示:

public class Execute {

public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
final Color bcolor = new Color(254, 0, 0);

final Window wndw = new Window("Test", 1000, 1000, bcolor, true);

}
});

}

}

public class Window extends JFrame {
Window(final String name, final int width, final int length, final Color backgroundColor,
final boolean visible) {

System.out.println("made it to frame class");
this.setTitle(name);
this.setSize(width, length);
this.getContentPane().setBackground(backgroundColor);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(visible);

}
}

关于java - 如何构造 JFrame 子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31885048/

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