Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149

    [JAVA-SWING] JDialog non modale rispetto ai figli

    ciao,
    ho un problema concettuale e non so come risolverlo.
    allora io ho una JFrame principale. alla pressione di un bottone mi apre una window che estende JDialog, che è modale rispetto all'applicazione (APPLICATION_MODAL e APPLICATION_EXCLUDE).
    da questa finestra modale apro degli altri JFrame (senza impostazioni modali).

    il mio problema è che finche ho la finestra modale aperta non posso chiudere i JFrame creati da essa, cosa che invece vorrei fare.

    come posso risolvere?? c'è un modo per rendere le nuove finestre indifferenti al modal della JDialog? o c'è un differente modo per settare la JDialog per renderla modale rispetto al padre ma non rispetto ai figli?

    grazie
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    senza codici è impossibile aiutarti.
    Dovresti dare almeno la creazione del JDialog e la creazione delle finestre create da questo.
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    ok, allora ecco i codici:

    da mainWindow apro mainWizard
    da mainWizard apro showImage
    mainWizard è modale rispetto all'applicazione

    mainWizard:
    Codice PHP:
    public class MainWizard extends JDialog {
        public 
    MainWizard() {
            
    setModal(true);
            
    setModalityType(ModalityType.APPLICATION_MODAL);
            
    setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
            
    setResizable(false);
            
    setTitle("False Color Wizard");
            
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

            [...]
        }

    all'interno di mainWizard ci sono delle JPictureBox (che sono componenti creati da me per visualizzare delle immagini)
    alle jPictureBox è associato il seguente listener
    Codice PHP:
    pbImgVis.addMouseListener(new MainWizardController.PictureBoxClickAction("Visual Image")); 
    MainWizardController.PictureBoxClickAction:
    Codice PHP:
    public static class PictureBoxClickAction implements MouseListener {

            private 
    String title;
            
            public 
    PictureBoxClickAction(String title) {
                
    this.title title==null "Untitled" title;
            }
            
            @
    Override
            
    public void mouseClicked(MouseEvent e) {
                
    //TODO: delete duplicate windows
                //TODO: not open if blank image
                
                
    JPictureBox pb = (JPictureBoxe.getSource();
                
                if(
    pb.getOriginalImg()==null)
                    return;
                
                
    CanvasFrame cFrame = new CanvasFrame(this.title);
                
    cFrame.setCanvasSize(300300);
                
    cFrame.showImage(pb.getOriginalImg());
            }

            @
    Override
            
    public void mouseEntered(MouseEvent e) {
                
    itSelf.frame.setCursor(new Cursor(Cursor.HAND_CURSOR));
            }

            @
    Override
            
    public void mouseExited(MouseEvent e) {
                
    itSelf.frame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
            }

            @
    Override
            
    public void mousePressed(MouseEvent e) {
            }

            @
    Override
            
    public void mouseReleased(MouseEvent e) {
            }
            
        } 
    i CanvasFrame sono frame generati da una classe della libreria javacv che mostrano un'immagine all'interno del frame. comunque anche usando un JFrame creato al volo il risultato è lo stesso.

    quindi: come faccio a impostare i CanvasFrame in modo che non siano modali rispetto al MainWizard???
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

  4. #4
    Utente di HTML.it L'avatar di elilo
    Registrato dal
    Aug 2007
    Messaggi
    149
    ciao,
    ho pensato che potrei rendere anche le finestre (showImage, che mi danno problemi, modali rispetto al parent del parent (al nonno: mainWindow).

    questo non le metterebbe tutte sullo stesso livello rendendole non modali tra di loro??
    a questo proposito...come specifico il parent su cui essere modale?

    grazie
    ciao
    "Se in un primo momento
    l'idea non è assurda,
    allora non c'è nessuna speranza
    che si realizzi."
    - Albert Einstein -

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.