Swing Fullscreen und Dialogfelder

Enigma228

Bekanntes Mitglied
Hallo
ich hab ein Programm im Vollbildmodus und im Verlauf des Programms soll ein Dialogfeld (JOptionPane oder JDialog) erscheinen.
Leider ist das Dialogfeld nicht deutlich sichtbar und lässt sich nicht per Mouse bedienen (mit Tastatur schon)
Woran liegt das und wie kann ich es lösen?

hier ein kleines Beispiel:
Java:
import java.awt.Color;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class MyFrame extends JFrame implements ActionListener{

	private JButton b_close, b_larger, b_smaller;
	private GraphicsDevice device;
   
	public MyFrame() throws HeadlessException {
		this.setLayout(null);
		this.setSize(500,500);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setUndecorated(true);
		
		this.getContentPane().setBackground(Color.WHITE);
		
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		device =ge.getDefaultScreenDevice();
		
		if(device.isFullScreenSupported()){
			device.setFullScreenWindow(this);
		}
		
		b_close = new JButton("Beenden");
		b_close.setBounds(20, 20, 100, 30);
		b_close.addActionListener(this);
		
		b_larger = new JButton("FullScreen");
		b_larger.setBounds(20, 70, 100, 30);
		b_larger.addActionListener(this);
		b_larger.setEnabled(false);
		
		b_smaller = new JButton("Window");
		b_smaller.setBounds(20, 120, 100, 30);
		b_smaller.addActionListener(this);
		
		this.add(b_close);
		this.add(b_smaller);
		this.add(b_larger);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()== b_close){
			//Dieser Dialog ist nicht mit Maus beendbar und ist nicht richtig sichtbar
			// weder mit "this" noch mit "null"
			JOptionPane.showMessageDialog(null/*this*/, "Sicher");
			device.setFullScreenWindow(null);
            System.exit(0);
		}
		if(e.getSource()== b_larger){
			b_larger.setEnabled(false);
			b_smaller.setEnabled(true);
			device.setFullScreenWindow(this);
		}
		if(e.getSource()== b_smaller){
			b_larger.setEnabled(true);
			b_smaller.setEnabled(false);
			device.setFullScreenWindow(null);
		}
	}
}
 
G

Gastredner

Gast
Wenn ich mich nicht irre, dann beissen sich FSEM und Swing ganz gewaltig. Deswegen sind Applikationen - sofern es keine Spiele oder Multimediaanwendungen sind - auch normalerweise nicht im FSEM.
 

Enigma228

Bekanntes Mitglied
Ich schau mir das Projekt mal genau von Anfang an an.. habe aber nicht viel Hoffnung, weil ich im Quellcode keine Dialoge gefunden habe..
 

Ähnliche Java Themen


Oben