java - 如何在处理中创建单个草图的多个窗口?

标签 java applet processing frame multi-window

我想在处理中仅使用一个草图来创建两个窗口。

我想做的是,如果我单击一个窗口中的按钮,则某些图像会出现在另一个窗口中。

我在 Google 上搜索并找到了一些示例。实际上,我在这个“堆栈溢出网络”中发现了同样的问题。这是链接。

Create more than one window of a single sketch in Processing http://forum.processing.org/one/topic/multiple-windows-2-4-2011.html

这是第二个链接的代码。

import java.awt.Frame;
PFrame f;
secondApplet s;
//f = new PFrame();
void setup() {
 size(320, 240);
 f = new PFrame();
}

void draw() {
  background(255,0,0);
   fill(255);
   rect(10,10,frameCount%0,10);
   s.background(0, 0, 255);
   s.fill(100);
   s.rect(10,20,frameCount%0,10);
   s.redraw();
}

public class PFrame extends Frame{
    public PFrame() {
        setBounds(100,100,400,300);
        s = new secondApplet();
        add(s);
        s.init();
        show();
    }
}

public class secondApplet extends PApplet {
    public void setup() {
        size(400, 300);
        noLoop();
    }

    public void draw() {
    }
} 

但是当我运行此代码时,我在 add(s); 处收到以下错误消息。

Container 类型中的 add(Component) 方法不适用于参数 (multi_window_test.secondApplet)

第一个链接的第一个评论的代码类似,但是当我运行此代码时,我收到相同的错误消息。

我找到的其他示例代码都是类似的。他们都创建了 PFrame 类和扩展 PApplet 的第二个Applet。他们说这些代码运行良好,但我无法运行这些代码。

我找不到错误消息的原因。除了我之外,其他人在运行此示例代码时似乎没有问题。 如果有人知道解决方案,请帮助我。

此外,如果还有其他简单的方法可以在一个草图中创建多个窗口,请告诉我。

最佳答案

错误消息的原因非常不言自明:add()函数期待 Component ,和PApplet不是Component 。这是因为PApplet不再延伸 Applet从处理 3 开始,使用它作为 Component 的旧代码将不再起作用。

相反,请考虑我对 this question 的回答。基本上,只需创建一个扩展 PApplet 的类即可对于您的第二个窗口,然后调用 PApplet.runSketch()使用那一秒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);
  }
}

关于java - 如何在处理中创建单个草图的多个窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798606/

相关文章:

java - fmt :message default value

java - 无法在 NetBeans 8.0 平台上的 Topcomponent 中使用 Worldwind 组件

通过索引存储对象的Java类

java - keyListener 和线程不工作

java - 使用 applet/GridBagLayout 的 GUI

Java 应用程序(处理 IDE)附加窗口在 i3wm 中不可见,常见修复不起作用

java - 是否可以创建一个将两位数年份转换为四位数年份的 DateFormatter?

javascript - JavaPOS Applet 和 Javascript

java - 这会像析构函数一样工作吗?

javascript - 如何知道何时加载了 processingjs 草图?