gpt4 book ai didi

java - 我如何使用这个 Java GUI API 来绘制东西?

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

我的导师定义了this图形API。

这非常简单,但我现在花了一两个小时试图找出如何显示简单的图形操作。

所以我有一个 T 类,它扩展了 TopLevel,它是我的主框架。我还有一个 Pad P,它扩展了 Pad,这是其 PaintComponent 方法的主体:

@Override
protected void paintComponent(Graphics2D g) {
super.paintComponent(g);
g.drawString("Hello", 0, 0);
g.fill(new Rectangle(5, 5));
repaint(); //(Probably don't need)
}

然后我调用 T.add(P),(我也调用 T.addButton(..)T.display(true) code>。当我运行应用程序时,我会看到一个空 Canvas ,其中包含我创建的按钮。

感谢任何帮助。

最佳答案

绘制文本并不像你想象的那么简单。

y 位置代表字体的基线(大多数文本所在的点。还有一条像样的线,位于基线下方的字符将延伸到该位置(例如“g”和“p”等字符)。

字体也有上升。这是基线以上典型字符的“高度”(显然不包括下降)

enter image description here

图片来自Measuring Text

为了正确绘制文本,您必须始终将上升添加到 y 位置...

FontMetrics fm = g.getFontMetrics();
g.drawString("Hello", 0, fm.getAscent());

您也可能会丢失 repaint 调用,这将导致重绘管理器(最终)一遍又一遍地调用您组件的 paint 方法。 .再次...

在 Swing 中,Graphics 通常被设置为使颜色成为组件的前景色。为了确定起见,您可能需要尝试更改颜色。

在尝试绘制任何内容之前,请尝试使用类似 g.setColor(Color.RED); 的内容。

关于java - 我如何使用这个 Java GUI API 来绘制东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666335/

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