Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    306

    [java - swing] problema focus su jdialog

    Ciao a tutti,

    ho un piccolo problema di focus,

    da un jpanel (A),contenuto in un jframe(X), apro un jdialog (B) che a
    sua volta in base a delle condizioni apre un altro jdialog (C)

    il problema è nell'apertura del "C"

    A apre B
    B fa dei controlli, se manca un dato apre C per inserimento dati

    C dovrebbe essere aperto sopra A e B invece viene aperto inizialmente
    sopra ma poi si posiziona sotto

    Poi ho un pulsante in A che reinvoca B e poi C e non ho nessun problema.

    Perchè???


    Credo che il problema sia sul X.show();
    ma perchè B si apre correttamente sopra?


    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    innanzitutto non usare show, ma usa setVisible(true), secondo: fai la JDialog 2 modale e falla aprire alla JDialog 1.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    306
    la differenza tra show e setvisivble?????

    già la jdialog B(1) apre la C(2).

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    show è deprecato... meglio non chiamarlo con programmi nuovi (funziona lo stesso, ma solo per motivi di retro compatibilità)

    codice:
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    
    public class dueJDialog extends JFrame implements ActionListener {
      
      public void actionPerformed (ActionEvent ae) {
        miaJDialog primaJDialog = new miaJDialog(this, "Prima JDialog", true);    
      }
      
      private class miaJDialog extends JDialog implements ActionListener {
        
        
        JButton secondaJDialog = new JButton("Apri JDialog 2");
        
        public miaJDialog(JFrame owner, String title, boolean modal) {
          super(owner, title, modal);
          this.setSize(300, 300);
          this.getContentPane().add(secondaJDialog);
          secondaJDialog.addActionListener(this);
          this.setVisible(true);      
        }
        
        public void actionPerformed (ActionEvent ae) {
          System.out.println("Apertura Seconda JDialog");
          miaSecondaJDialog dialog = new miaSecondaJDialog((JFrame)this.getParent(), "Seconda JDialog", true);      
        }
        
        
        
        private class miaSecondaJDialog extends JDialog implements ActionListener {
          
          
          public void actionPerformed (ActionEvent ae) {
            System.out.println("Chiusura Seconda JDialog");
            this.setVisible(false);
          }
          
          public miaSecondaJDialog(JFrame owner, String title, boolean modal) {
            super(owner, title, modal);
            this.setSize(200, 300);
            JButton chiudi = new JButton("Chiudi");
            this.getContentPane().add(chiudi);
            chiudi.addActionListener(this);
            this.setVisible(true);
            
          }      
        }    
      }
      
      public dueJDialog() {
        super("Demo 2 JDialog");
        this.setSize(500, 500);
        JButton apri = new JButton("Apri prima JDialog");
        this.getContentPane().add(apri);
        apri.addActionListener(this);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      
      public static void main (String[] args) {
        dueJDialog d = new dueJDialog();
      }
    }
    Questo crea due JDialog. La seconda blocca la prima la quale a sua volta blocca il JFrame.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    306
    grazie mille

    mi ero dimenticato
    .....
    super(owner, title, modal);
    ....


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