【发布时间】:2021-12-31 15:42:03
【问题描述】:
import javax.swing.*;
import java.awt.*;
public class Grid extends JFrame{
public Grid(){
super("Pathfinding Algorithms");
setContentPane(new drawGrid());
setSize(1920,1080);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setUndecorated(true);
setVisible(true);
}
class drawGrid extends JPanel {
public void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.drawLine(0,50,1920,50);
}
}
public static void main(String[] args){
new Grid();
}
}
由于某种原因,每当我运行此代码时都没有显示任何内容。我没有收到任何错误,也没有收到任何输出消息。 我该如何解决这个问题?
【问题讨论】:
-
您的代码对我有用。整个屏幕被涂成灰色,一条黑色的水平线在屏幕顶部附近贯穿整个屏幕。
-
与@Abra 相同的报告。话虽如此,该代码中存在许多问题和一些冗余,这意味着行为可能不是一致的访问机器。
-
关于那些问题和冗余:1)这里不需要扩展
JFrame。只需使用一个简单的实例。 2)drawGrid应命名为DrawGrid以匹配常见的 Java 命名法。 3)setSize(1920,1080);是多余的,给定setExtendedState(JFrame.MAXIMIZED_BOTH);4)setVisible(true);应该紧跟在pack()之后。 5)public void paintComponent(Graphics g)添加@Override表示法用于方法名称和参数的编译时检查。 6) 在任何被覆盖的方法中,总是首先调用super()方法。 7)new Grid();应该在 EDT 上调用。 -
.. 8) 鉴于对
setUndecorated(true);的调用,使用JWindow可能更有意义。 --- 我怀疑问题来自第 4 点和第 7 点,但将它们全部实施并回复我们。或者,将这段代码扔掉,然后重新开始,在完成 Java 教程的“创建 GUI”之后。 -
“什么是“EDT”?” 什么是a search engine?提示:每当您听到不理解的术语或缩写时,请将其添加到语言名称中(例如“java”)并将该查询弹出到搜索引擎中。另一个提示:添加@Abra(或重要的
@)以通知此人有新评论。
标签: java swing user-interface