Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Processing 处理中存在多个窗口的问题_Processing - Fatal编程技术网

Processing 处理中存在多个窗口的问题

Processing 处理中存在多个窗口的问题,processing,Processing,我有一个非常简单的草图,可以打开多个窗口,如下所示: void setup(){ size(100,100); noLoop(); } void keyPressed(){ String[] args={"Secondary window!"}; SecondWindow window=new SecondWindow(); PApplet.runSketch(args, window); } class SecondWindow extends PApplet{ vo

我有一个非常简单的草图,可以打开多个窗口,如下所示:

void setup(){
  size(100,100);
  noLoop();
}
void keyPressed(){
  String[] args={"Secondary window!"};
  SecondWindow window=new SecondWindow();
  PApplet.runSketch(args, window);
}

class SecondWindow extends PApplet{
  void setup(){
    size(100,100);
    background(~0);
    noLoop();
  }
  void keyPressed(){
    exit();
  }
}
然而,有一个问题:我如何才能关闭just child窗口?按下子窗口上的[X]键将同时关闭父草图和子草图,函数
exit()
也会执行相同的操作

是否有只关闭子小程序的方法?没有列出任何似乎可以做到这一点的方法


谢谢大家!

使用
surface
变量可以访问底层窗口。您可以调用
surface.setvisable(false)
来隐藏窗口

void setup(){
  size(100,100);
  noLoop();
}
void keyPressed(){
  String[] args={"Secondary window!"};
  SecondWindow window=new SecondWindow();
  PApplet.runSketch(args, window);
}

class SecondWindow extends PApplet{
  void setup(){
    size(100,100);
    background(~0);
    noLoop();
  }
  void keyPressed(){
    surface.setVisible(false);
  }
}

非常感谢。但是,如果用户意外按下[X]按钮(隐藏窗口是很自然的),它仍然会关闭整个草图、父对象和子对象。有没有办法禁用[X]或更改其功能?@Fuzzyzilla当然,您需要访问底层的
JFrame
(您可以通过
getNative()
函数访问它),然后调用
setDefaultCloseOperation()
函数。谢谢!setVisible()函数工作得很好,但setDeafaultCloseOperation()解决方案却不行。调用该函数似乎没有效果@Fuzzyzilla您将向其传递什么参数?你什么时候叫它?呜呜!意识到我犯了一个错误,没有人打电话给我。然而,现在我遇到了另一个问题:处理不使用JFrame!相反,渲染器使用ResizeableCanvas和SmoothCanvas!