Do *_*Tog 2 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 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();
}
}
Run Code Online (Sandbox Code Playgroud)
并编辑...
void mousePressed(){
PFrame f = new PFrame();
}
Run Code Online (Sandbox Code Playgroud)
成:
if(mousePressed && mouseX > 1050 && mouseX < 1350 && mouseY > 700 && mouseY < > 750) {
f = new PFrame();
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但自从我下载并安装了Processing III后,我遇到了以下错误:
add()需要参数add(component).init()不存在.show()不推荐使用类型窗口中的方法.首先,该代码不是很好.我很惊讶它在Processing 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);
}
}
Run Code Online (Sandbox Code Playgroud)
以上这些对我来说很有用,虽然这种方法看起来很神圣.如果你真的想在草图中有两个窗口,那么最好创建一个生成两个草图的Java应用程序.