Hallo zusammen,
ich habe folgendes Problem. Aus meinem Hauptfenster soll sich ein zweites Fenster öffnen lassen auf dem sich ein Canvas befindet. Auf dem Canvas werden dann einige Inhalte grafisch dargestellt. Dies hat auch soweit gut funktioniert. Nun möchte ich aber, dass das Hauptfenster nicht anwählbar ist, solange das zweite Fenster geöffnet ist. Habe daher das zweite Fenster als JDialog angelegt und diesen als modal gesetzt. Da nun nichts mehr im Canvas dargestellt worden ist, habe für das zweite Fenster einen Thread angelegt. Soweit funkioniert es nun auch. Aber manchmal, sobald man den JDialog schließt und direkt wieder öffnet, ist nichts enthalten. Das wäre die Display Klasse. Über die Hauptklasse greife ich dann auf den Canvas zurück und zeichne mithilfe einer BufferStrategy in diesen. Hängt es möglicherweise mit dem Thread zusammen?
Danke und liebe Grüße
LatinFavourite
ich habe folgendes Problem. Aus meinem Hauptfenster soll sich ein zweites Fenster öffnen lassen auf dem sich ein Canvas befindet. Auf dem Canvas werden dann einige Inhalte grafisch dargestellt. Dies hat auch soweit gut funktioniert. Nun möchte ich aber, dass das Hauptfenster nicht anwählbar ist, solange das zweite Fenster geöffnet ist. Habe daher das zweite Fenster als JDialog angelegt und diesen als modal gesetzt. Da nun nichts mehr im Canvas dargestellt worden ist, habe für das zweite Fenster einen Thread angelegt. Soweit funkioniert es nun auch. Aber manchmal, sobald man den JDialog schließt und direkt wieder öffnet, ist nichts enthalten. Das wäre die Display Klasse. Über die Hauptklasse greife ich dann auf den Canvas zurück und zeichne mithilfe einer BufferStrategy in diesen. Hängt es möglicherweise mit dem Thread zusammen?
Danke und liebe Grüße
LatinFavourite
Java:
public class Display {
private JDialog window;
private Canvas canvas;
private int width;
private int height;
public Display(int width, int height, String title) {
this.width = width;
this.height = height;
window = new JDialog();
window.setModal(true);
window.setTitle(title);
window.setSize(width, height);
window.setResizable(false);
window.setLocationRelativeTo(null);
canvas = new Canvas();
canvas.setPreferredSize(new Dimension(width, height));
canvas.setMinimumSize(new Dimension(width, height));
canvas.setMaximumSize(new Dimension(width, height));
window.add(canvas);
window.pack();
new Thread() {
public void run() {
window.setVisible(true);
}
}.start();
}
public Canvas getCanvas() {
return canvas;
}
public JDialog getWindow() {
return window;
}
}