处理中的新窗口
Posted
技术标签:
【中文标题】处理中的新窗口【英文标题】:New window in Processing 【发布时间】:2015-11-21 11:28:39 【问题描述】:昨天我发现以下代码用于在处理中创建第二个窗口
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 = new PFrame();
效果很好,但是自从我下载并安装了 Processing III 后,我遇到了以下错误:
函数add()
需要像add(component)
这样的参数。
init()
函数不存在。
类型窗口中的 show()
方法已弃用。
【问题讨论】:
PApplet 不再扩展 Applet,因此不能再将其视为组件。 【参考方案1】:首先,那个代码不是很好。我很惊讶它在处理 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 应用程序。
【讨论】:
【参考方案2】:处理 3 已更改,因此它不再依赖 AWT,从而提供更大的灵活性,但会破坏依赖它的代码(如 JFrames 等)。新的方法是使用 PSurfaces,但目前缺乏文档和示例。处理 3 的这一部分正在积极开发中,因此您必须稍等片刻。
【讨论】:
以上是关于处理中的新窗口的主要内容,如果未能解决你的问题,请参考以下文章
需要在 javascript 中为选项卡窗口和 Internet Explorer 中的新窗口提供唯一 ID [重复]
如何在java脚本中打开Chrome中的新选项卡而不是新窗口
带有路由器模式哈希的 Electron vuejs 应用程序的新窗口