【问题标题】:Paint Applet graphics onto a JPanel将 Applet 图形绘制到 JPanel 上
【发布时间】:2013-11-01 01:23:11
【问题描述】:

当 Applet.setVisible(false); 时,我一直在尝试绘制 Applet 的图形;并在 JPanel.visible(true); 时将其绘制到我的 JPanel 上;

我尝试使用 Image i = Applet.createImage(width,height);然后使用 g.drawImage(i, 0, 0, this); 将图像绘制到我的 JPanel;

当 JPanel.paintComponent(Graphics g)... 被调用时,我只剩下一个空白的 JPanel。

有更好的方法吗?

【问题讨论】:

  • 如果小程序是用 BufferedImage 绘制的,为什么不直接将它传递给 JPanel?您想要达到的总体效果是什么?请告诉我们更多关于您的问题的重要细节。
  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java swing graphics applet


【解决方案1】:

如果我没记错的话,Applet 的可见性设置为 false 时不会绘制,这就解释了为什么您的 JPanel 出现空白。你有必要隐藏Applet吗?一个典型的解决方案是通过调用将Applet 直接添加到JPanel

myJPanel.add(myApplet);

当然,这混合了 Swing 和 AWT 组件,有些人会反对,但它仍然有效。但请注意,Applet 的单个实例不能同时被绘制到两个地方,因此您不能同时将您的 Applet 添加到 JPanel 和另一个地方。

【讨论】:

  • 关键是几乎模仿“玻璃窗格”的效果,这样我就可以查看小程序,但不能发送/接收鼠标/键盘输入。我希望我可以从小程序图形创建和图像并将图像绘制到我的 JPanel,但也许这是不可能的。感谢您的回复。
  • @TonyDepace:你为什么不从一开始就告诉我们这个和其他细节?为此使用玻璃板有什么问题?同样,为了获得更好的答案,请提供更多问题的详细信息。
  • @TonyDepace 您是 Applet 的作者吗?您可以在 Applet 中添加一个标志以在处于冻结状态时忽略输入。
  • 气垫船,我不认为它会帮助@时间,对不起。 @Nathaniel,我不是小程序的作者,它是使用 url 类加载器加载的。我正在设计一个经过修改的客户端。
猜你喜欢
  • 1970-01-01
  • 2014-11-02
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多