Я только начал создавать приложение в Processing, и у меня появляется непредсказуемое поведение, когда я помещаю объект PApplet в JFrame с помощью BorderLayout.CENTER.
Ширина PApplet на 100 меньше ширины и высоты JFrame.
В некоторых случаях, когда я нажимаю «Выполнить», программа заполняет экран и работает действительно плавно, но в других случаях PApplet запускается слева сверху и оставляет зазор в 100 в нижней части экрана и с левой стороны, и довольно отстает.
Понятия не имею, что происходит, если честно.
Это результат, который работает гладко:
![Wanted behvaiour](https://i.imgur.com/UKem7.jpg)
Это непредсказуемый:
![Unwanted behaviour](https://i.imgur.com/vXQ9T.jpg)
Вот код, который я использую:
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, поэтому мне было интересно, если кто-нибудь поделится своими знаниями и объяснит, что происходит, и можно ли будет это исправить? этот выпуск.
Спасибо.