处理中的新窗口

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()不推荐使用类型窗口中的方法.

Kev*_*man 6

首先,该代码不是很好.我很惊讶它在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应用程序.