Непредсказуемое поведение при обработке - PullRequest
1 голос
/ 19 января 2012

Я только начал создавать приложение в Processing, и у меня появляется непредсказуемое поведение, когда я помещаю объект PApplet в JFrame с помощью BorderLayout.CENTER.

Ширина PApplet на 100 меньше ширины и высоты JFrame. В некоторых случаях, когда я нажимаю «Выполнить», программа заполняет экран и работает действительно плавно, но в других случаях PApplet запускается слева сверху и оставляет зазор в 100 в нижней части экрана и с левой стороны, и довольно отстает.

Понятия не имею, что происходит, если честно.

Это результат, который работает гладко:

Wanted behvaiour

Это непредсказуемый:

Unwanted behaviour

Вот код, который я использую:

PApplet подкласс

public class JCanvas extends PApplet {

/**
 * PApplet method - performs all setup actions
 */
public void setup(){
    size(1400,900,P3D);
    background(80);
}

/**
 * PApplet method - All drawing occurs here
 */
public void draw(){
    background(80);
    pushMatrix();
    translate(mouseX,mouseY, -199);
    fill(220,0,0);
    box(120,500,90);
    popMatrix();
}
}

Класс зрителя

public final class EuroViewer {

private final static int WIDTH = 1500;
private final static int HEIGHT = 1000;
private final static boolean RESIZABLE = false;

public static void main(String[] arguments){
    final JFrame frame = new JFrame("Eurographics PApplet");

    JCanvas sketchCanvas = new JCanvas();
    frame.add( sketchCanvas );

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(WIDTH, HEIGHT);
    frame.setResizable(RESIZABLE);
    frame.setLocationRelativeTo(null);

    sketchCanvas.init();
    frame.setVisible(true);
}

}

Затем я попытался заменить JFrame на awt.Frame , если между Swing и awt возникли некоторые проблемы со стабильностью (которые, как мне кажется, основаны на том, что PApplet построен) это частный случай.

Удивительно, но с Frame никогда не происходит никаких лагов, что решило проблему. Но я всегда использовал JFrame, любую графическую работу с контейнерами и т. Д. Я всегда делал с Swing, поэтому мне было интересно, если кто-нибудь поделится своими знаниями и объяснит, что происходит, и можно ли будет это исправить? этот выпуск.

Спасибо.

1 Ответ

0 голосов
/ 09 июня 2013

Не рекомендуется совмещать обработку эскизов с Swing.О непредсказуемом поведении много раз сообщалось.

...