我试图通过添加:
制作一个我独立的applet程序 public static void main(String[] args) {
JFrame frame = new JFrame("StartingPoint");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
StartingPoint sp = new StartingPoint();
frame.getContentPane().add(sp);
sp.init();
frame.pack();
frame.setVisible(true);
sp.start();
}
在公开课后。当作为applet运行时,它什么都不做,但是当它作为应用程序运行时,它作为一个非常小的,几乎扁平的盒子运行,除了标题,并且当手动调整大小时,屏幕是空白的,然后是背景颜色。 知道可能导致这种情况的原因吗?
我也注意到,每当我调整框架的大小时,它上面的内容都会冻结,就像屏幕截图显示应该发生的事情一样,当屏幕调整到几乎全屏时我可以在顶部看到筛选出应该移动的一小部分。
答案 0 :(得分:1)
我只想说,将applet放入框架中是一个非常糟糕的主意。最好将应用程序内容写入单独的容器(例如JPanel
)并将其添加到您的applet或框架中 - 恕我直言。
来自Java Docs ...
窗口#包
使此窗口的大小适合首选大小和布局 其子组件。窗口的最终宽度和高度是 如果任何一个尺寸小于,则自动放大 上一次调用setMinimumSize指定的最小大小 方法
如果窗口和/或其所有者尚未显示,则两者都可以显示 在计算首选尺寸之前可以显示。窗户 在计算其大小后进行验证。
如果您希望使用preferredSize
pack
答案 1 :(得分:0)
您需要设置JFrame
:
frame.setSize(500, 400);
听起来好像是在覆盖paint()
方法。如果是这样,您需要致电
super.paint(g);
在resize上重新绘制applet容器的所有子组件。