2
我一直试图在JFrame中粘贴一个PApplet,并在用户更改JFrame的大小时调整大小,但文档存在时尚不清楚。 Here有人告诉我使用调整JPanel中的PApplet的大小
void setup() {
frame.setResizable(true);
}
void resize(int w, int h) {
super.resize(w,h);
frame.setSize(w,h);
}
但是当我尝试,它似乎帧是空的,我不就如何确保调整获取的叫,反正清晰。
有没有人得到这个工作?
编辑:简化的代码。
下面是我的一些代码,基于http://wiki.processing.org/w/Swing_JSliders:
public class MyPanel extends JPanel
{
public MyPanel()
{
//have tried both BoxLayout and BorderLayout
setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));
//if, instead of a PApplet I use a JPanel, this resizes fine
// it's only when using a PApplet that it won't resize
//add our processing window
PApplet pa = new PApplet();
pa.init();
add(pa);
}
// create external JFrame
private static void createGui()
{
// create new JFrame
JFrame jf = new JFrame("test");
// this allows program to exit
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// You add things to the contentPane in a JFrame
jf.getContentPane().add(new MyPane());
// keep window from being resized
//jf.setResizable(false);
// size frame
jf.pack();
// make frame visible
jf.setVisible(true);
}
public static void main(String[] args)
{
// threadsafe way to create a Swing GUI
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run()
{
createGui();
}
}
);
}
}
感谢,任何帮助是极大的赞赏。
从我的阅读中,PApplet是一个基于AWT的组件,它是从Applet派生而来的。你确定要把它放在一个Swing应用程序/ JPanel中吗?此外,如果您的JPanel使用BorderLayout并添加PApplet BorderLayout.CENTER(以及另一个BorderLayout位置中的其他组件),该怎么办? –
我将它放在JPanel中,因为我想将它与非处理GUI配对,并且http://wiki.processing.org/w/Swing_JSliders 提供了一种方法。至于使用BorderLayout,它拥有PApplet很好,但我仍然不知道如何调整它的大小,它不会自动执行。 – Dogmatixed
@Dogmatixed:*“至于使用BorderLayout,它拥有PApplet很好,..resize ..,它不会自动执行它”*它应该如果您将它添加到CENTER约束(没有其他布局是用BorderLayout强制容器的尺寸最小)。为了更快地获得更好的帮助,请尝试使用普通彩色面板代替“PApplet”制作[SSCCE](http://pscode.org/sscce.html)。 –