【发布时间】:2016-07-21 13:21:28
【问题描述】:
这个JFrame 包含一个JPanel,其中包含一个processing 草图。代码如下所示:
import javax.swing.JFrame;
import javax.swing.JPanel;
import processing.core.PApplet;
public class TestCase {
public static void main(String[] args) {
ProcessingFrame pFrame = new ProcessingFrame();
pFrame.setVisible(true);
}
}
@SuppressWarnings("serial")
public class ProcessingFrame extends JFrame{
public ProcessingFrame(){
this.setSize(600, 400);
this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
ProcessingSketch pSketch = new ProcessingSketch();
panel.add(pSketch);
this.add(panel);
pSketch.init();
this.setVisible(true);
}
}
public class ProcessingSketch extends PApplet{
public ProcessingSketch(){
//...
}
public void setup(){
size(600, 400);
background(200);
}
public void draw(){
rect(250,100,100,200);
}
}
panel 和/或sketch 经常(大约 50%)未呈现到适当的位置。有时它们只是右侧框架大小的一半左右,有时我只看到框架中草图的底部。
用鼠标调整框架大小后,一切看起来都很好。我想将 JFrame 设置为 undecorated,但无法调整窗口大小以将所有内容都放置到位。
这是我试图解决的问题:
JFrame.repaint()此处建议:Java items appear only after the window is resize。 - 没有效果。我以为我可以手动调整窗口大小,然后更改为
undecorated。按照这个问题的答案:Modifying a JFrame from within a Listener。但是处理草图崩溃了,因为我必须disposeJFrame。
还有其他想法吗?
【问题讨论】:
-
The code looks something like this:- 对我们没有帮助。发布一个正确的SSCCE 来说明问题。 -
谢谢@camickr,我试着创建一个测试用例。
-
对不起,我不知道第 3 方包是做什么的。也许它正在影响布局。 SSCCE 应该基于 JDK 类。
-
@camickr 这是处理,它比 Java 库稍微复杂一点。它是一种自己的语言。您可以将它与 Java 混合使用,因此很多处理问题也可以使用 Java 标记。但我认为这与我们将能够获得的minimal reproducible example 一样接近。
标签: java swing jframe jpanel processing