gpt4 book ai didi

java - 在 JPanel 中调整 PApplet 的大小

转载 作者:行者123 更新时间:2023-11-30 11:52:55 31 4
gpt4 key购买 nike

我一直在尝试将 PApplet 粘贴到 JFrame 中,并在用户更改 JFrame 的大小时调整其大小,但文档(如果存在)不清楚。 Here我被告知要使用

void setup() {
frame.setResizable(true);
}

void resize(int w, int h) {
super.resize(w,h);
frame.setSize(w,h);
}

但是当我尝试时,它似乎 frame 为 null,而且我不清楚如何确保调用 resize get。

有人用过这个吗?

编辑:简化代码。

这是我的一些代码,基于 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 不会调整大小。就像转动一样简单

PApplet pa = new PApplet();

进入

PApplet pa = new PApplet()
{
public void draw(){};
};

或用适当扩展的 PApplet 替换它。

我个人的概念验证不够详细。

关于java - 在 JPanel 中调整 PApplet 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6601515/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com