gpt4 book ai didi

Java JFrame 不在窗口中绘制线条

转载 作者:行者123 更新时间:2023-11-30 06:10:07 25 4
gpt4 key购买 nike

package Main;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;

public class Main extends JFrame{

public static void main(String[] args) {

int width = 800;
int height = 600;
String title = "Test";

JFrame display = new JFrame();
display.setTitle(title);
display.setSize(width, height);
display.setVisible(true);
display.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void paint(Graphics g) {

g.setColor(Color.white);
g.drawLine(0, 100, 800, 300);

getContentPane().setBackground(Color.black);
}

}

我正在使用 Java 的 JFrame。所以这不能识别绘制方法,也无法弄清楚为什么。我一直在查看 YouTube 视频,看看是否有人遇到过类似的问题,但是我发现的所有内容似乎都无法解决问题。

当我在主要部分设置背景颜色时,它起作用了,有点油漆,它似乎没有做任何事情并将其留空。

它是黑色背景上的一条白线,所以我应该很容易看到它。

最佳答案

诚然,我对 Swing 不太了解(我更喜欢 JavaFX)。但是,很明显,您的 Main 类一个 JFrame,因此您不应该在其中创建一个新的 JFrame。您在 display 上调用的所有这些方法都是在当前类中构建的。基本上,您在 JFrame 中创建了一个新的 JFrame。但是,您的 paint 方法正在父 JFrame 上调用,而您从未使其可见。这解决了您的问题(您可能必须全屏显示窗口):

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class Main extends JFrame{

public static void main(String[] args) {
new Main();
}

public Main() {
int width = 800;
int height = 600;
String title = "Test";

setTitle(title);
setSize(width, height);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.WHITE);
g.drawLine(100, 100, 800, 300);

getContentPane().setBackground(Color.black);
}

}

关于Java JFrame 不在窗口中绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436529/

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