我一直在尝试在一个JFrame中粘贴一个PApplet,并在用户更改JFrame的大小时调整它,但文档(如果存在)不清楚。 Here我被告知要使用
void setup() {
frame.setResizable(true);
}
void resize(int w, int h) {
super.resize(w,h);
frame.setSize(w,h);
}
但是当我尝试它似乎帧是空的时候,我不清楚如何确保调整resize被调用,无论如何。
有没有人让这个工作?
编辑:简化代码。
以下是我的部分代码,基于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();
}
}
);
}
}
谢谢,非常感谢任何帮助。
答案 0 :(得分:1)
答案很简单,实际上。似乎除非使用绘图,否则PApplet将不会调整大小。它就像转动
一样简单PApplet pa = new PApplet();
进入
PApplet pa = new PApplet()
{
public void draw(){};
};
或用适当扩展的PApplet替换它。
我只是没有让我的个人概念证明足够详细。