1

我有一个功能正常的 Java 小程序,它可以嵌入到网页中,现在希望添加一些摆动组件以实现附加功能。但是,每当我添加一个像 JLabel 这样的组件时,它根本不会出现在视口/画布上,除非我删除我的整个绘制方法。后一个选项允许我添加摆动组件,但自然不能渲染任何形状。它似乎类似于异或(XOR),一个但不是另一个。

无论如何,本机 Java 小程序中是否有添加摆动组件并仍然维护paint(Graphics g) 方法。请注意,我继承自 Applet 而不是 JApplet。

4

4 回答 4

3

如果您在小程序中覆盖绘制方法,那么没有简单的方法。

你可以做什么而不是在小程序中覆盖绘画。

  1. 改为扩展 JComponent 并在那里进行自定义绘图。
  2. 创建 JPanel,其中包含所有需要的 swing 组件,包括前面步骤中的组件。
  3. 将该面板添加到使用默认绘制方法的小程序中。
于 2013-04-05T11:26:34.103 回答
2

我建议您将组件添加到不覆盖的单独面板中paint。通过覆盖paint,您正在自定义组件的绘制方式,因此布局管理器和它必须管理的组件不计算在内,只有paint您编写的实现决定了内容的呈现方式。

因此,您的小程序将包含一个带有组件的面板和一个执行自定义绘画的面板。

于 2013-04-05T11:22:13.093 回答
0

我能够通过调用来可视化小程序画布上的组件

paintComponents(g);

因此,组件在实际的paint(Graphics g) 方法完成其时期之后被绘制。

于 2013-04-06T16:32:52.523 回答
0

在您的绘制方法结束时,调用super.paint(g).

于 2013-04-05T13:30:42.097 回答