Frage

Ich entwerfe ein Psychologie-experiment mit java-applets.Ich habe meine java-applets, die volle Bildschirm.Was ist der beste Weg, dies zu tun und wie kann ich dies tun.

Da ich noch nicht mit java-applets von 3 Jahren(Das Letzte mal, das ich verwendet habe, war es für einen Kurs Hausaufgaben :) ) ich habe vergessen die meisten Konzepte.Ich habe gegoogelt und gefunden, dass der link:Dani web

Aber in der Methode beschrieben, die im obigen link setzen Sie ein JFrame innerhalb des applet ich habe keine Ahnung, wie es zu tun.

Was auch immer ich brauche eine schnelle und schmutzige Methode b ' cause ich habe nicht viel Zeit, und dies ist der Grund, warum, fragte ich ihn hier.

Danke im Voraus

War es hilfreich?

Lösung

Ich denke, Sie wollen WebStart zu nutzen.Können Sie die Bereitstellung über einen browser, aber ansonsten ist es eine vollständige geblasen Anwendung.Es gibt ein paar browserish Sicherheits-Einschränkungen, aber, wie Sie sind mit einem Applet derzeit, ich denke, ich kann davon ausgehen Sie sind nicht ein problem.

Andere Tipps

Die offensichtliche Antwort ist, dass Sie nicht verwenden applets.Schreiben Sie eine Anwendung, die einen JFrame oder JWindow als top-level container.Es ist nicht eine riesige Menge an Arbeit, zu konvertieren, ein applet in eine Anwendung.Applets sind entwickelt, um eingebettet werden in etwas anderes, in der Regel eine web-Seite.

Wenn Sie bereits ein applet, und wollen, um es in voller-Bildschirm, gibt es zwei schnelle und schmutzige hacks:

1).Wenn Sie wissen, die Bildschirm Auflösung, setzen Sie einfach die applet-Parameter, die Größe in der HTML-und dann führen Sie den browser in den Vollbildmodus.

2).Führen Sie das applet im appletviewer, anstatt eine web-Seite, und maximieren die appletviewer-Fenster.

Warum nicht öffnen Sie einfach ein neues Bild aus dem applet (entweder aus dem "start ()" - Methode oder, vorzugsweise, nachdem der Benutzer drückt eine Taste "öffnen"), und legen Sie es maximiert werden?

JFrame frame = new JFrame();
//more initialization code here
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width, dim.height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

Vergessen Sie nicht:Die JFrame sollte erstellt und geöffnet von EDT.Applet starten() ist nicht garantiert zu werden aufgerufen, diesen thread verwenden, so SwingUtilities.invokeLater().Natürlich, wenn Sie sich für die Schaltfläche der route, button-listener wird aufgerufen, auf der EDT, so dass Sie sicher sein sollte.

Ich habe gefunden eine Lösung für dieses problem, das funktioniert gut.Getestet unter Linux 64 bits (Chrome und Firefox) und in Windows 7 64 bits (Chrome und Explorer)

Das einzige problem war, dass mein applet verwendet alle den Raum in dem browser und, wenn der Benutzer schalten Sie den Vollbildmodus, um das applet wird nicht skaliert, um die browser-Größe.Die Lösung ist zu halten die frühere Größe des Applets bevor Sie im fullscreen-Modus und setzen Sie dann diese Größe, wenn Sie das applet zurück in den normalen Modus:

public void setFullScreen() {   
        if (!this.fullscreen) {
            size = this.getSize();
            if (this.parent == null) {
                this.parent = getParent();
            }
            this.frame = new Frame();
            this.frame.setUndecorated(true);
            this.frame.add(this);
            this.frame.setVisible(true);

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice[] devices = ge.getScreenDevices();
            devices[0].setFullScreenWindow(this.frame);
            this.fullscreen = true;
        } else {
            if (this.parent != null) {
                this.parent.add(this);
            }
            if (this.frame != null) {
                this.frame.dispose();
            }
            this.fullscreen = false;
            this.setSize(size);
            this.revalidate();
        }       
        this.requestFocus();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top