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

昨天,我在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();
  }
}
并编辑

 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);
        }
      }