Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [JAVA] Focus sui Frame

  1. #1

    [JAVA] Focus sui Frame

    Eccomi di nuovo...



    Risolto il problema precedente eccone subito un altro...uff...

    La mia applicazione è composta da un Frame principale contenente una JTable e diversi JButton.
    Alla pressione di un bottone (ad esempio del bottone "Insert") si apre un altro Frame (un Frame secondario).

    Fin qua tutto bene...

    Ora il mio problema risiede nel fatto che vorrei non poter accedere più al Frame principale fin a quando non è stato chiuso il Frame secondario.

    Oppure che non vengano aperte altre istanze del Frame secondario se ve ne è già aperta una.

    Ho provato a settare il focus degli oggetti, ma ho sbagliato di sicuro qualcosa...

    Un aiutino???
    Thanx
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,012
    Prima di tutto, spero che tu stia usando swing e non awt (mi preoccupa "Frame" invece di "JFrame"...). Comunque, per fare in modo che la finestra sottostante resti "bloccata" dalla nuova finestra devi usare una JDialog modale. Ti conviene lavorare con le API e il tutorial su swing sottomano: sono tutte domande "elementari" a cui trovi risposta lì.

    API: http://java.sun.com/javase/6/docs/api/
    Swing tutorial: http://java.sun.com/docs/books/tutor...ing/index.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Si si Swing...sono tutti JFrame...Ok do un'occhiata grazie per ora...
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  4. #4
    Non riesco a trovare quello che mi serve...
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,012
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Mmm non ne vengo fuori...forse postando un po' di codice riesco ad uscirne...

    Codice per la pressione del JButton "insert" nel main Frame

    codice:
    if (e.getSource==insert){
    addframe=new AddFrame();
    }
    Codice per la pressione del JButton "cancel" nel AddFrame (Frame Secondario)

    codice:
    if (e.getSource==cancel){
    setVisible(false);
    }
    Ora ovviamente ad ogni pressione del tasto Insert nel main Frame si genera una nuova Istanza di AddFrame. Io questo lo vorrei evitare facendo si che o il main Frame venga disabilitato o che anche se si preme una seconda volta "insert" non vengano generate altre istanze di AddFrame se la prima non è stata chiusa.

    Ora ho provato così:
    codice:
    if (e.getSource==insert){
      if(addframe==null){
    addframe=new AddFrame();
       }
    }
    Però ovviamente "insert" funziona solo la prima volta perchè dopo il riferimento anche se passa il GC non viene distrutto.

    Poi ho provato con i JDialog:
    codice:
    if (e.getSource==insert){
    JDialog addframe=new JDialog(new AddFrame());
    }
    Ma le cose non cambiano e qua suppongo di aver interpretato male il tutorial e gli esempi...



    Saranno banalità, ma...boh...
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Il tuo codice dovrebbe avere questa struttura:
    codice:
    public class AddFrame extends JDialog {
       //costruttore
       //public addFrame(JFrame owner) {
          super(owner, true); //Chiamo il costruttore della superclasse dicendogli che la finestra 
                              //sara' modale(secondo parametro a true)
         RESTO DEL CODICE DEL COSTRUTTORE
       }
       RESTO DEL CODICE DELLA CLASSE
    }
    Nell'actionListener del frame principale:
    codice:
    if (e.getSource.equals(insert)){
       addframe=new AddFrame(this);
    }
    Nell'actionListener di addFrame:
    codice:
    if (e.getSource.equals(cancel)){
       this.dispose();
    }

  8. #8
    Grande!!! Esattamente questo cercavo...

    Ultima cosa, è possibile impostare l'icona in un JDialog? Perchè il metodo setIcon è di JFrame...ovviamente...

    Grazie ancora!!!
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    La JDialog prende l'icona del JFrame che gli viene passata. Che io sappia, non c'e' modo di settare l'icona di una Jdialog, se non quello di settare l'icona della finestra che gli viene passata.

  10. #10
    Eh si...funzia così e in più se setti il non ridimensionamento della finestra setResizable=false l'icona non viene nemmeno visualizzata!!!

    http://bugs.sun.com/bugdatabase/view...bug_id=6317332

    Grazie ancora!!!
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

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 © 2021 vBulletin Solutions, Inc. All rights reserved.