2015-08-27 2 views
1

Вчера я нашел следующий код для создания второго окна в обработкеНовое окно в обработке

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() из окна типа устарел.
+0

PApplet больше не расширяет апплет, поэтому его больше нельзя рассматривать как компонент. –

ответ

5

Прежде всего, этот код не очень хорош. Я удивлен, что он работал в 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); 
    } 
} 

Вышеперечисленные работы для меня, хотя подход кажется довольно хаком. Если вы действительно хотите иметь два окна в своем эскизе, вам может быть лучше создать Java-приложение, которое создаст два эскиза.

1

Обработка 3 была изменена, поэтому она больше не зависит от AWT, что обеспечивает большую гибкость, но при этом нарушает код, который зависит от него (например, JFrames и т. Д.). Новый способ сделать это - использовать PSurfaces, но в настоящий момент отсутствует документация и примеры. Эта часть обработки 3 находится в активной разработке, поэтому вам придется немного ее подождать.