使用带有applets绘制方法的swing组件

时间:2013-04-05 11:18:18

标签: java swing applet

我有一个正常运行的Java小程序,它可以嵌入到网页中,并希望现在为其他功能添加一些swing组件。但是每当我添加一个像JLabel这样的组件时,它就不会出现在视口/画布上,除非我删除了我的整个绘制方法。后一个选项允许我添加摆动组件,但自然我不能渲染任何形状。它看似类似于一个独特的OR(XOR),无论是一个还是另一个。

无论如何在本机Java小程序中添加swing组件并仍然保持paint(Graphics g)方法。请注意,我继承自Applet而不是JApplet。

4 个答案:

答案 0 :(得分:3)

如果在applet中覆盖paint方法,则没有简单的方法。

你可以做什么而不是覆盖applet中的绘画。

  1. 改为扩展JComponent并在那里进行自定义绘制。
  2. 创建包含所有必需的swing组件的JPanel,包括前面步骤中的组件。
  3. 将该面板添加到使用默认绘制方法的applet。

答案 1 :(得分:2)

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

因此,您的applet将包含一个包含组件的面板和一个用于执行自定义绘制的面板。

答案 2 :(得分:0)

在绘画方法结束时,请致电super.paint(g)

答案 3 :(得分:0)

我能够通过调用

在applet画布上可视化组件
paintComponents(g);

因此,在实际的油漆(Graphics g)方法完成其时代之后,组件被涂漆。