【发布时间】:2011-08-25 17:57:39
【问题描述】:
我正在尝试在 JFrame 中查看 JApplet。
Class: Paint
public void paint(Graphics g) {
g.drawString("hi", 50, 50);
}
public static void main(String args[]) {
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(methodThatReturnsJMenuBar());
JPanel panel = new JPanel(new BorderLayout());
frame.add(panel);
JApplet applet = new Paint();
panel.add(applet, BorderLayout.CENTER);
applet.init();
frame.pack();
frame.setVisible(true);
}
小程序出现在窗口中,但没有背景(它是透明的),当我单击菜单时,列表被覆盖。如何使菜单列表不被覆盖,并且有背景?
编辑:当我绘制一个白色矩形时,它修复了背景问题,但菜单列表仍然被覆盖。
【问题讨论】:
-
你为什么要这样做?你想解决什么问题?
-
只是为了方便(我不想从 appletviewer 或网络浏览器启动)。
-
我不知道您的确切要求,但对我来说听起来不太方便。我认为小程序通常不是今天要走的路。您可以查看 JavaFX 或 JNLP 以获取替代方案。 javafx.comen.wikipedia.org/wiki/Java_Web_Start
-
这里发生了许多错误。 JApplet 是一个根容器,因此我相信它是一个重量级容器,不会与您的轻量级容器(例如包含 JPanel)搭配得很好。为什么不装备你的 GUI 来创建 JPanel,然后如果你想将它们作为一个小程序在 JApplet 中使用它们,或者如果你希望它们在一个独立的情况下在 JFrame 中使用它们?
-
如faq 中所述,请接受和/或投票给您认为有用的答案。