Newsgroup: it.comp.java
Titolo: JFrame in Applet

sto cercando di trasferire la mia applicazione in applet...
 
ho cosi' esteso  in JApplet quello che prima estendeva JFrame:
 
public class MainFrame extends JApplet {
 
	public MainFrame() {
 
		MenuBar menu = new MenuBar();
		setJMenuBar(menu);
 
		setLayout(new BorderLayout());
 
		Chart chart = new Chart();
 
		DateConsolePanel dateConsolePanel = new DateConsolePanel();
		dateConsolePanel.setBar(menu);
		dateConsolePanel.setChart(chart);
		dateConsolePanel.dateConsole();
 
		add(chart, BorderLayout.CENTER);
		add(dateConsolePanel, BorderLayout.NORTH);
 
	}
 
}
 
Questo applet e' incorporato nella pagina HTML col seguente codice
<applet code="MainFrame.class" width="100%" height="100%"
align=center></applet>
 
Voglio infatti che l'applet occupi il piu' spazio possibile sullo
schermo, andando ad occuapre tutto lo spazio vuoto disponibile nel
browser.
 
Per avere un effetto ancora piu' efficiente, vorrei che l'utilizzatore
premesse il tasto F11 per visualizzare il contenuto del browser a
schermo intero... il problema e' che il tasto F11 non funzionera' a
meno che non si clicchi prima da qualche parte al di fuori dell'applet
e sul Browser-window.
 
Per questo motivo vorrei creare una funzione all'interno dell'applet
che funzioni come F11.
 
Il seguente codice che ho trovato in questo esempio (
http://demo.dzzd.net/HelloWorld/HelloWorld.htm
 
http://www.java-gaming.org/index.php/topic,20058.0.html
 
)
farebbe al caso mio... ma dopo qualche tentativo ho paura di non avere
alcuna idea di come implemetarlo con il mio codice di qui sopra
 
Frame frame = new Frame();
   Container parent;
   boolean fullscreen=false;
 
   public void switchFullScreen()
   {
      System.out.println("SWITCH");
      if(!fullscreen)
      {
         if(this.parent==null)
            this.parent=getParent();
 
 
           frame.setUndecorated(true);
           frame.add(this);
           frame.setVisible(true);
 
 
         GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
          GraphicsDevice[] devices = ge.getScreenDevices();
          devices[0].setFullScreenWindow(frame);
          fullscreen=true;
       }
       else
       {
          parent.add(this);
          frame.dispose();
          fullscreen=false;
       }
       this.requestFocus();
   }
 
Sono riuscito a creare un applet che inizia un JFrame in una nuova
finestra... ma vorrei invece che il tutto rimanesse all'interno del
browser come nell'esempio del link sopra
 
Qualsiasi dritta sara' una chicca :)

 browser come nell'esempio del link sopra
 
 
mi sono accorto che a dire il vero anche l'esempio citato fa apparire
una nuova finestra.. ma senza bordi e gia' a schermo intero...
 
ora devo solo capire se aprendo una nuova finestra viene lanciata
l'applicazione nuovamente o se rimane la stessa istanza che viene
visualizzata in piccolo nel browser
 

il seguente codice fa proprio quello che fa l;esempio.. mi ero perso
in un bicchier d'acqua...
 
unico problema e' che quando da fullscreen torno al browser.. la
finestra non fa apprire tutti gli elementi... e' come se rimanesse con
le stesse dimensioni del fullscreen ma visualizzandone solo uan
prozione... forse devo usare qualcosa come pack()?
 
public class MainFrame extends JApplet {
 
	public void init() {
 
		MenuBar menu = new MenuBar();
		setJMenuBar(menu);
 
		setLayout(new BorderLayout());
 
		Chart chart = new Chart();
 
		DateConsolePanel dateConsolePanel = new DateConsolePanel();
		dateConsolePanel.setBar(menu);
		dateConsolePanel.setChart(chart);
		dateConsolePanel.dateConsole();
 
		add(chart, BorderLayout.CENTER);
		add(dateConsolePanel, BorderLayout.NORTH);
		JButton full = new JButton("FULL");
		add(full, BorderLayout.SOUTH);
 
		full.addActionListener(new ActionListener() {
	            public void actionPerformed(ActionEvent ae) {
							switchFullScreen();
                        }
        });
