gpt4 book ai didi

java - 在 mac 上的 JFrame 上画一个矩形

转载 作者:行者123 更新时间:2023-11-30 11:24:27 24 4
gpt4 key购买 nike

我在 Mac 上绘制矩形时遇到问题。该代码适用于 Windows,并且在框架上绘制了一个矩形,但在 Mac 上,框架出现时没有矩形。我在两个平台上编译了完全相同的代码。

代码如下:

主类.java

import javax.swing.JFrame;
import java.awt.Rectangle;

public class mainClass
{
public static void main(String[] args)
{
JFrame window = new JFrame();
window.setSize(640, 480);
window.setTitle("New Window");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);

drawingComponent DC = new drawingComponent();
window.add(DC);
}
}

绘图组件.java

import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import java.awt.Rectangle;

public class drawingComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;

Rectangle rect1 = new Rectangle(5, 5, 100, 200);
g2.draw(rect1);
}
}

它们被保存到 2 个不同的 .java 文件中。我只在两个平台上编译了 mainClass.java。

感谢任何帮助!

最佳答案

您应该做的最后一件事是将框架设置为可见,因为那是绘画发生的地方。如果您先设置可见然后修改组件,您将不会看到更改,直到重新绘制屏幕。当屏幕因某种原因失效时会发生重绘。

我不能完全说清楚为什么这在 mac 上很明显,可能是 JVM 实现中的一些小差异。如果您必须在 UI 可见后更新它,您可以重新验证它以正确地重新绘制它。 This answer有一些进一步的细节。

关于java - 在 mac 上的 JFrame 上画一个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666302/

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