Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] form non più modale

    salve ragazzi ho bisogno di un mega aiuto il più veloce possibile...

    stò ultimando il mio progetto d'università (gestione delle prenotazioni delle aule) quando ad un certo punto il metodo con cui io rendo i miei frame modali non mi funziona più...

    o per meglio dire non so perchè ma con i frame che già mi sono creato mi funziona ancora mentre con quelli nuovi che mi vado a creare no...

    vi posto un semplice esempio: un menù formato da 6 pannelli con all'interno 1 icona ed in mezzo una label...

    se vuoi richiamate il metodo show() non è modale ed infatti la schermata non vi si vede, o per meglio dire vi si vede per una frazione di millisecondi:

    vi posto il codice tanto è molto semplice, le parti in grassetto sono il modo in cui io rendo un form modale, grazie dell'aiuto:

    codice:
    package gestaule;
    
    import java.awt.Dimension;
    import java.lang.reflect.InvocationTargetException;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.ImageIcon;
    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    /**
     * @author Roberto
     *
     * TODO Per modificare il modello associato al commento di questo tipo generato, aprire
     * Finestra - Preferenze - Java - Stile codice - Modelli codice
     */
    public class TestInterface extends JFrame {
    
    	private javax.swing.JPanel jContentPane = null;
    	private JLabel cmdInsertPrenotazioni = null;
    	private JLabel cmdInsertAule = null;
    	private JLabel cmdSearchPrenotazioni = null;
    	private JLabel cmdViewAule = null;
    	private JLabel cmdDeletePrenotazioni = null;
    	private JLabel cmdConnetti = null;
    	private JLabel lblSpiegazione = null;
    	private JPanel panelConnetti = null;
    	private JPanel panelInsertAule = null;
    	private JPanel panelViewAule = null;
    	private JPanel panelInsertPrenotazioni = null;
    	private JPanel panelSearchPrenotazioni = null;
    	private JPanel panelDeletePrenotazioni = null;
    	private JDialog dialog=null;
    	private FormFunction ffunction=new FormFunction();
    	/**
    	 * This is the default constructor
    	 */
    	public TestInterface() {
    		super();
    		initialize();
    	}
    	/**
    	 * This method initializes this
    	 * 
    	 * @return void
    	 */
    	private void initialize() {
    		dialog=new JDialog(this,null);
    		dialog.setResizable(false);
    		dialog.setContentPane(getJContentPane());
    		dialog.setTitle("Menù Principale - GestAule");
    		dialog.pack();
    		dialog.setSize(515, 230);
    		centerScreen();
    	}
    	/**
    	 * This method initializes jContentPane
    	 * 
    	 * @return javax.swing.JPanel
    	 */
    	private javax.swing.JPanel getJContentPane() {
    		if(jContentPane == null) {
    			lblSpiegazione = new JLabel();
    			cmdConnetti = new JLabel();
    			cmdDeletePrenotazioni = new JLabel();
    			cmdViewAule = new JLabel();
    			cmdSearchPrenotazioni = new JLabel();
    			cmdInsertAule = new JLabel();
    			cmdInsertPrenotazioni = new JLabel();
    			jContentPane = new javax.swing.JPanel();
    			jContentPane.setLayout(null);
    			cmdInsertPrenotazioni.setText("JLabel");
    			cmdInsertPrenotazioni.setLocation(0, 0);
    			cmdInsertPrenotazioni.setSize(146, 56);
    			cmdInsertPrenotazioni.setIcon(new ImageIcon(getClass().getResource("/resources/InsertPrenotazioni.jpg")));
    			cmdInsertAule.setText("JLabel");
    			cmdInsertAule.setLocation(0, 0);
    			cmdInsertAule.setSize(146, 56);
    			cmdInsertAule.setIcon(new ImageIcon(getClass().getResource("/resources/InsertAule.jpg")));
    			cmdSearchPrenotazioni.setText("JLabel");
    			cmdSearchPrenotazioni.setLocation(0, 0);
    			cmdSearchPrenotazioni.setSize(146, 56);
    			cmdSearchPrenotazioni.setIcon(new ImageIcon(getClass().getResource("/resources/SearchPrenotazioni.jpg")));
    			cmdViewAule.setText("JLabel");
    			cmdViewAule.setLocation(0, 0);
    			cmdViewAule.setSize(146, 56);
    			cmdViewAule.setIcon(new ImageIcon(getClass().getResource("/resources/ViewAule.jpg")));
    			cmdDeletePrenotazioni.setText("JLabel");
    			cmdDeletePrenotazioni.setLocation(0, 0);
    			cmdDeletePrenotazioni.setSize(146, 56);
    			cmdDeletePrenotazioni.setIcon(new ImageIcon(getClass().getResource("/resources/DeletePrenotazioni.jpg")));
    			cmdConnetti.setText("JLabel");
    			cmdConnetti.setLocation(0, 0);
    			cmdConnetti.setSize(146, 56);
    			cmdConnetti.setIcon(new ImageIcon(getClass().getResource("/resources/LogIn.jpg")));
    			lblSpiegazione.setText("JLabel");
    			lblSpiegazione.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
    			lblSpiegazione.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    			lblSpiegazione.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    			lblSpiegazione.setSize(475, 42);
    			lblSpiegazione.setLocation(15, 78);
    			jContentPane.add(lblSpiegazione, null);
    			jContentPane.add(getPanelConnetti(), null);
    			jContentPane.add(getPanelInsertAule(), null);
    			jContentPane.add(getPanelViewAule(), null);
    			jContentPane.add(getPanelInsertPrenotazioni(), null);
    			jContentPane.add(getPanelSearchPrenotazioni(), null);
    			jContentPane.add(getPanelDeletePrenotazioni(), null);
    		}
    		return jContentPane;
    	}
    	/**
    	 * This method initializes jPanel	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelConnetti() {
    		if (panelConnetti == null) {
    			panelConnetti = new JPanel();
    			panelConnetti.setLayout(null);
    			panelConnetti.setLocation(15, 10);
    			panelConnetti.setSize(146, 56);
    			panelConnetti.add(cmdConnetti,null);
    		}
    		return panelConnetti;
    	}
    	/**
    	 * This method initializes jPanel1	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelInsertAule() {
    		if (panelInsertAule == null) {
    			panelInsertAule = new JPanel();
    			panelInsertAule.setLayout(null);
    			panelInsertAule.setLocation(180, 10);
    			panelInsertAule.setSize(146, 56);
    			panelInsertAule.setBorder(null);
    			panelInsertAule.add(cmdInsertAule,null);
    		}
    		return panelInsertAule;
    	}
    	
    
    	private Runnable dialogHider = new Runnable(){public void run(){dialog.setVisible(false);}};
    	private Runnable dialogThrower = new Runnable(){public void run(){dialog.setVisible(true);}};
    	  
    	  private void showDialog() 
    	  {
    	    if (SwingUtilities.isEventDispatchThread())
    	      dialog.setVisible(true);
    	    else
    	    {
    	      try 
    		  {
    	        SwingUtilities.invokeAndWait(dialogThrower);
    	      }
    	      catch (InvocationTargetException e)
    		  {
    	        System.out.println(e.getCause());
    	      }
    	      catch (InterruptedException e) 
    		  {
    	      }
    	      finally {
    	        hideDialog();
    	      }
    	    }
    	  }
    
    	  
    	  public void centerScreen()
    		{
    			Dimension d=ffunction.centerScreen(dialog);
    		    int x= (int)d.getWidth();
    		    int y= (int)d.getHeight();
    		    dialog.setLocation(x,y);
    		 }
    	  
    	  private void hideDialog() 
    	  {
    	    if (SwingUtilities.isEventDispatchThread())
    	      dialog.setVisible(false);
    	    else 
    	      SwingUtilities.invokeLater(dialogHider);
    	  }
    	  
    	  public void show(){showDialog();}
    	  public void showTestInterface(){showDialog();}
    
    
    	  
    	/**
    	 * This method initializes jPanel2	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelViewAule() {
    		if (panelViewAule == null) {
    			panelViewAule = new JPanel();
    			panelViewAule.setLayout(null);
    			panelViewAule.setLocation(345, 10);
    			panelViewAule.setSize(146, 56);
    		}
    		return panelViewAule;
    	}
    	/**
    	 * This method initializes jPanel3	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelInsertPrenotazioni() {
    		if (panelInsertPrenotazioni == null) {
    			panelInsertPrenotazioni = new JPanel();
    			panelInsertPrenotazioni.setLayout(null);
    			panelInsertPrenotazioni.setLocation(15, 130);
    			panelInsertPrenotazioni.setSize(146, 56);
    			panelInsertPrenotazioni.add(cmdInsertPrenotazioni);
    		}
    		return panelInsertPrenotazioni;
    	}
    	/**
    	 * This method initializes jPanel4	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelSearchPrenotazioni() {
    		if (panelSearchPrenotazioni == null) {
    			panelSearchPrenotazioni = new JPanel();
    			panelSearchPrenotazioni.setLayout(null);
    			panelSearchPrenotazioni.setLocation(180, 130);
    			panelSearchPrenotazioni.setSize(146, 56);
    			panelSearchPrenotazioni.add(cmdSearchPrenotazioni);
    		}
    		return panelSearchPrenotazioni;
    	}
    	/**
    	 * This method initializes jPanel5	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */    
    	private JPanel getPanelDeletePrenotazioni() {
    		if (panelDeletePrenotazioni == null) {
    			panelDeletePrenotazioni = new JPanel();
    			panelDeletePrenotazioni.setLayout(null);
    			panelDeletePrenotazioni.setLocation(345, 130);
    			panelDeletePrenotazioni.setSize(146, 56);
    			panelDeletePrenotazioni.add(cmdDeletePrenotazioni);
    		}
    		return panelDeletePrenotazioni;
    	}
          }  //  @jve:decl-index=0:visual-constraint="10,10"
    Let's your dream came true!

  2. #2
    Hai aggiornato Java ultimamente?
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    P.S. Vedi se questo fa al caso tuo:

    http://forum.java.sun.com/thread.jspa?threadID=576390

    in particolare la risposta 12
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  4. #4
    adesso vedo poi ti faccio sapere, intanto grazie.
    cmq si Java mi si è aggiornato all'ultima versione...

    e io che non lo volevo aggiornare!!!
    Let's your dream came true!

  5. #5
    non fa niente....

    ma se tu provi a copiarti il mio codice, commentando le righe dove inserisco le immagini e poi richiami il metodo show() ti fa la stessa cosa o ti appare come modale???
    Let's your dream came true!

  6. #6
    risolto, basta leggere bene la Java DOC

    Codice PHP:
    JDialog(JFrame frame,String title,boolean modal
    grazie e ciao.
    Let's your dream came true!

  7. #7
    e cmq a titolo informativo l'errore nel mio codice era in questa riga:

    codice:
    dialog=new JDialog(this,null);
    che va sostituita con questa:

    codice:
    dialog=new JDialog(this,true);
    Let's your dream came true!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.