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 = (JPictureBox) e.getSource();
if(pb.getOriginalImg()==null)
return;
CanvasFrame cFrame = new CanvasFrame(this.title);
cFrame.setCanvasSize(300, 300);
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???