|
|
1
0
在前面的答案中添加更多信息。。。 在绘制组件之前,大小是随机的,因此请确保在帧上有一个setVisible(true)。这是您的代码和一些修改,允许您使用BorderLayout并获得绘图面板的大小。我用一些假按钮代替你的界面,但你会明白的。
|
|
|
2
1
一般来说,在使用JFrame时,应该使用contentPane,而不是JFrame本身,因此要添加项,请尝试
对于第一个问题,尝试在JFrame上使用pack。 http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Window.html#pack () 对于您的附加问题,JComponent有一个getWidth和getHeight方法。这将告诉你JPanel的当前大小。 http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComponent.html#getWidth () |
|
|
3
0
将组件添加到可见框架时,代码应类似于:
|
|
|
4
0
确保在 Event Dispatch Thread (美国东部时间)。在你的例子中,你不是,而且当你有奇怪的,不一致的行为时,那通常是候选人。Swing不是线程安全的,它依赖于EDT上Swing对象的创建和修改。 要解决此问题,只需将主方法的内容包装在SwingUtilities.invokeLater调用中,如下所示:
这将在EDT线程上创建JFrame和其他组件。这是否解决了不一致的“大多数情况下不起作用”行为? 另外,我更喜欢叫setVisible last…尽管这可能不重要。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |