gpt4 book ai didi

java - 从另一个类调用绘制或渲染方法 - Java

转载 作者:行者123 更新时间:2023-12-01 10:52:08 25 4
gpt4 key购买 nike

我对这个问题做了很多研究,但找不到任何可以帮助我解决的问题。当我运行这个应用程序时,我唯一看到的是一个空的 JFrame,预期的输出是一个带有黑色矩形的 JFrame。这是我的代码,有两个类。

public class Test {

public static void main(String[] args) {
Test test = new Test("Frame");
test.setFrame();
Window win = new Window(ObjectId.Window, 10, 10, 10, 10);
win.repaint();
}

private String title;

public Test(String title) {
this.title = title;
}

private void setFrame() {
JFrame frame = new JFrame(title);
frame.setSize(800, 600);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

}

我的第二堂课:

public class Window extends Component {

private ObjectId id;

private int x, y;
private int width, height;

public Window(ObjectId id, int x, int y, int width, int height) {
this.id = id;

this.x = x;
this.y = y;

this.width = width;
this.height = height;

}

public void paintComponent(Graphics g) {
g.setColor(Color.black);
g.fillRect(x, y, width, height);
}

谢谢

最佳答案

您没有将 win 添加到 frame(的 contentPane)。并且您应该在 Window 类中扩展 JPanel,而不是 Component

因此,如果您将 Window win = new Window(ObjectId.Window, 10, 10, 10, 10) 移动到 setFrame() 方法中(您不需要需要 win.repaint()) 并调用 frame.getContentPane().add(win) (或类似的东西)它将起作用。

关于java - 从另一个类调用绘制或渲染方法 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805535/

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