Processing 处理中的新窗口
昨天,我在Processing中找到了创建第二个窗口的以下代码Processing 处理中的新窗口,processing,new-window,Processing,New Window,昨天,我在Processing中找到了创建第二个窗口的以下代码 import javax.swing.JFrame; PFrame f; secondApplet s; void setup() { size(600, 340); } void draw() { background(255, 0, 0); fill(255); } void mousePressed(){ PFrame f = new PFrame(); } public class
import javax.swing.JFrame;
PFrame f;
secondApplet s;
void setup() {
size(600, 340);
}
void draw() {
background(255, 0, 0);
fill(255);
}
void mousePressed(){
PFrame f = new PFrame();
}
public class secondApplet extends PApplet {
public void setup() {
size(600, 900);
noLoop();
}
public void draw() {
fill(0);
ellipse(400, 60, 20, 20);
}
}
public class PFrame extends JFrame {
public PFrame() {
setBounds(0, 0, 600, 340);
s = new secondApplet();
add(s);
s.init();
println("birh");
show();
}
}
并编辑
void mousePressed(){
PFrame f = new PFrame();
}
进入:
if(mousePressed&&mouseX>1050&&mouseX<1350&&mouseY>700&&mouseY<>750){
f=新的PFrame();
}
}
它工作得很好,但自从我下载并安装Processing III后,我出现了以下错误:
- 函数
需要像add()
这样的参数add(component)
- 函数
不存在init()
- 类型窗口中的方法
已被弃用show()
- 处理3已更改,因此它不再依赖于AWT,从而允许更大的灵活性,而是破坏依赖于它的代码(如JFrames等)。新的方法是使用psurface,但目前缺乏文档和示例。Processing 3的这一部分正在积极开发中,因此您将不得不等待一段时间 首先,这段代码不是很好。我很惊讶它在处理2中起作用,更不用说处理3了。对你在网上随机找到的代码要非常小心
也就是说,这里有一些代码:
void setup() {
size(100, 100);
String[] args = {"TwoFrameTest"};
SecondApplet sa = new SecondApplet();
PApplet.runSketch(args, sa);
}
void draw() {
background(0);
ellipse(50, 50, 10, 10);
}
public class SecondApplet extends PApplet {
public void settings() {
size(200, 100);
}
public void draw() {
background(255);
fill(0);
ellipse(100, 50, 10, 10);
}
}
上述方法对我来说很有效,尽管这种方法看起来很粗糙。如果您确实希望在草图中有两个窗口,最好创建一个生成两个草图的Java应用程序。PApplet不再扩展小程序,因此不能再将其视为组件。
void setup() {
size(100, 100);
String[] args = {"TwoFrameTest"};
SecondApplet sa = new SecondApplet();
PApplet.runSketch(args, sa);
}
void draw() {
background(0);
ellipse(50, 50, 10, 10);
}
public class SecondApplet extends PApplet {
public void settings() {
size(200, 100);
}
public void draw() {
background(255);
fill(0);
ellipse(100, 50, 10, 10);
}
}