Swing JInternalFrame modal setzen?

juandeluca

Mitglied
Hallo!

Ich habe ein standard Swing-Fenster mittels NetBeans erstellt. Auf diesem habe ich ein JDesktopPane, sodass ich darin mehrere JInternalFrames verwalten kann.

Nun habe ich den Fall, dass ich ein JInternalFrame modal setzen möchte.

Um das zu erreichen, dachte ich daran, es auf das Glass Pane zu setzen. So kann ich alles, was sich hinter dem Glass Pane befindet einfach ausschalten und mich nur auf mein JInternalFrame auf dem Glass Pane konzentrieren.
Ich bin da nach folgendem Muster vorgegangen:

JFrame.setGlassPane(JInternalFrame)
JInternalFrame.setVisible(true)

Das funktioniert auch alles ganz prächtig, allerdings ist die Größe meines JInternalFrame nun so groß wie das Fenster, bzw. das Glass Pane.

Eigentlich wollte ich die Originalgröße des modal-JInternalFrame behalten.

Wie kann ich das JInternalFrame in das Glass Pane setzen ohne die Größe des JInternalFrame zu beeinflussen?

Vielen Dank im Vorraus!
 
V

vanny

Gast
Ich finde dein Vorhaben schon n bissl komisch???:L
Nimm doch nen modalen Dialog, der is dafür da und ändert doch auch nichts am Verhalten deines Programms (oder etwa doch?).
Jetzt mal abgesehen davon, dass sich zu deinem Problem ohne Code wohl kaum was helfen lässt, will ich gerne wissen, was du mit deiner Taktik bezweckst. (lass mich bitte nicht dumm sterben:oops:)

Gruß Vanny
 

juandeluca

Mitglied
Hi Vanny!

Ok, JDialog ist eine feine Sache und eigentlich auch beinahe das, was ich mir wünsche. Da wäre nur eine Sache.

Kann ich den JDialog in das Hauptfenster einbinden, wie ein JInternalFrame, sodass das JDialog also kein "zweites" eigenständiges Fenster mehr ist?
 

juandeluca

Mitglied
Nun, ich finde es optisch einfach ansprechender alles innerhalb eines Fensters zu haben und es nicht über den Monitor zu verteilen.

Schade!

Gibt es denn keine Lösung? Ich will ja nichts kompliziertes! Eigentlich trifft JDialog ziemlich genau mein Vorhaben, nur dass ich diesen noch Internal, also nur innerhalb meines Fenster aber trotzdem modal gegenüber allen anderen Controls, haben will.
 
V

vanny

Gast
Hmm,

mal abgesehen davon, dass sich über das optisch schöner streiten liesse, kannst du dem Dialog sagen, das er in der Mitte oder wo auch immer über deinem JFrame angezeigt werden soll.

Ich bleibe jetzt mal ganz dreist bei meinem Statement und behaupte, der JDialog ist genau das, was du brauchst.

Gruß Vanny

[EDIT]zum Beispiel kannste das Dingens undecorated(true); setzen und schon haste, was de suchst.[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:

juandeluca

Mitglied
Ne du!

Der JDialog ist zwar nett, aber er erfüllt nur zu 50%, was ich will.

Ich überlege gerade an einer anderen Sache herum. Undzwar, dass ich mein JInternalFrame auf ein neues JDesktopPane setze und dieses dann in das Glass Pane setze: setGlassPane(JDesktopPane).
Das klappt auch alles ganz gut, allerdings ist das JDesktopPane standardmäßig nicht transparent. Mit Nimbus hat es also diesen blauen Hintergrund. Ergebnis ist, dass das JDesktopPane auf dem Glass Pane das andere JDesktopPane dahinter völlig verdeckt.

Ich will doch aber eigentlich nur das JInternalFrame anzeigen und nicht gleich das komplette neue JDesktopPane! ;(

Gibt es eine Möglichkeit beim JDesktopPane den Hintergrund transparent zu setzen?
 
C

Camino

Gast
Kannst du mal genauer den Grund erklären, warum ein JDialog dafür ungeeignet sein sollte und du unbedingt auf einen JInternalFrame bestehst. Versteh ich so nicht ganz. Was soll denn die Funktionalität sein, was der JInternalFrame mehr oder anders können soll, als der JDialog? Liegt es daran, dass du mehrere Fenster gleichzeitig modal öffnen möchtest?

Meiner Meinung nach widersprechen sich diese beiden Aussagen:
Nun habe ich den Fall, dass ich ein JInternalFrame modal setzen möchte.
und
Kann ich den JDialog in das Hauptfenster einbinden, wie ein JInternalFrame, sodass das JDialog also kein "zweites" eigenständiges Fenster mehr ist?

Wenn du den neuen Frame modal setzen möchtest, dann ist es irgendwie ein "zweites eigenständiges Fenster".
 

juandeluca

Mitglied
Ich bin ja prinzipiell mit JDialog zufrieden. Das einzige, was mir nicht gefällt, ist dass es sich ausserhalb befindet. Ob das nun als sinnvoll angesehen wird spielt nicht wirklich eine Rolle, da es sich hierbei um eine Geschmackssache handelt.

JInternalFrame stellt nichts in Sachen Modal zur Verfügung. Ich könnte das allerdings mit JFrame erledigen, doch dann hätte ich wieder das externe Fenster und könnte lieber gleich zum JDialog.

Mittlerweile habe ich auch etwas gefunden, das meinen Wünschen etwas näher kommt. Meine normalen JInternalFrame Fenster setze ich auf ein JDesktopPane, nach dem Prinzip:
jDesktopPane1.add(aWindow, javax.swing.JLayeredPane.DEFAULT_LAYER);
Nun fand ich eben die Möglichkeit, dasselbe JInternalFrame auch auf ein Modal-Layer zu setzen:
jDesktopPane1.add(aWindow, javax.swing.JLayeredPane.MODAL_LAYER);
Damit hätte ich es ja schonmal vor allen anderen Fenstern in meinem JDesktopPane und somit wäre das Fenster ja schon halb-modal.

Das einzige, was mich jetzt noch stört, ist dass ich immernoch alles außerhalb des soeben auf das MODAL_LAYER gesetzte JInternalFrame anklicken kann.

Was ich gerne hätte, ist dass jeder Mausklick außerhalb des JInternalFrame im MODAL_LAYER ignoriert wird.

Deshalb dachte ich, dass ich vielleicht einen Mouse-Listener im JDesktopPane registriere. So könnte ich die Klicks kontrollieren, doch irgendwie klappt das noch nicht. Mein bisheriger Stand:
jDesktopPane1.addMouseListener(new MouseAdapter() { *ein paar Overrides* });

Gibt es denn die Möglichkeit in meinem JDesktopPane nur Klicks bzw. Aktionen auf das JInternalFrame im MODAL_LAYER zu begrenzen?



Um deinen Fragen noch gerecht zu werden:
>> Nun habe ich den Fall, dass ich ein JInternalFrame modal setzen möchte.
Damit meine ich das, was ich soeben oben erklärt habe mit dem MODAL_LAYER und dem JDesktopPane.
>> Kann ich den JDialog in das Hauptfenster einbinden, wie ein JInternalFrame, sodass das JDialog also kein "zweites" eigenständiges Fenster mehr ist?
Hierbei stört mich lediglich, dass sich der JDialog außerhalb des Hauptfensters befindet. Ich habe mit dem JDialog bisher noch nicht viel zutun gehabt.
 
C

Camino

Gast
Ich bin ja prinzipiell mit JDialog zufrieden. Das einzige, was mir nicht gefällt, ist dass es sich ausserhalb befindet. Ob das nun als sinnvoll angesehen wird spielt nicht wirklich eine Rolle, da es sich hierbei um eine Geschmackssache handelt.

Wenn ich das jetzt richtig verstehe, möchtest du nur, dass der Dialog nicht ausserhalb des aufrufenden Frames verschoben werden kann? Hmm, keine Ahnung, vielleicht gibt es ja die Möglichkeit, das Verschieben und die Position des Dialogs zu kontrollieren und zu stoppen, wenn ein bestimmter Bereich/Grenze erreicht wird.
 

juandeluca

Mitglied
Ne, das mit dem Verschieben ist mir egal. Mir ist wichtig dass das alle Fenster sich innerhalb eines Hauptfensters befindet, ganz gleich welches.

Die Frage ist also:

Gibt es denn die Möglichkeit in meinem JDesktopPane nur Klicks bzw. Aktionen auf das JInternalFrame im MODAL_LAYER zu begrenzen?
 
V

vanny

Gast
lol, dann nutze doch das Cardlayout und zieh ne neue Card und gut is.

Der Grund, warum JInternalFrame keine Modalität zur Verfügung stellt ist schlichtweg die Sinnlosigkeit einer solchen Funktion.

Gruß Vanny
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
megachucky JInternalFrame modal setzen AWT, Swing, JavaFX & SWT 3
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
L LookAndFeel JInternalFrame aussehen isSelected() true vs false AWT, Swing, JavaFX & SWT 0
X JInternalFrame vor Java2D-Zeichnung langsam bzw. Gui friert ein AWT, Swing, JavaFX & SWT 1
G Swing JInternalFrame AWT, Swing, JavaFX & SWT 0
R Custome TitlePane JInternalFrame - ControlButton AWT, Swing, JavaFX & SWT 2
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
G JInternalframe geöffnet oder nicht? AWT, Swing, JavaFX & SWT 4
G Swing und MDI mit JInternalFrame AWT, Swing, JavaFX & SWT 11
H Swing JInternalFrame, JDesktopPane und ein BorderLayout AWT, Swing, JavaFX & SWT 2
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
A Swing getInsets() JInternalFrame AWT, Swing, JavaFX & SWT 2
R Swing JInternalFrame Opaque AWT, Swing, JavaFX & SWT 6
M JInternalFrame - Handhabung? AWT, Swing, JavaFX & SWT 5
algorismi JInternalframe Icon AWT, Swing, JavaFX & SWT 14
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
V JInternalFrame wird überzeichnet AWT, Swing, JavaFX & SWT 8
T Neuen JInternalFrame von JLabel "herunterziehen" AWT, Swing, JavaFX & SWT 6
T JInternalframe auf DropTarget droppen? AWT, Swing, JavaFX & SWT 7
O Swing JInternalFrame komplett neu laden AWT, Swing, JavaFX & SWT 3
B JInternalFrame - Maximieren AWT, Swing, JavaFX & SWT 11
X Grafikfehler mit JInternalFrame (Überlagerungen) AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - mit DesktopManager maximieren AWT, Swing, JavaFX & SWT 3
J Swing JInternalFrame - Bug: getDesktopManager.deiconify(...) AWT, Swing, JavaFX & SWT 2
W JInternalFrame + JList Problem AWT, Swing, JavaFX & SWT 5
H Swing JInternalFrame aus JFrame ziehen AWT, Swing, JavaFX & SWT 6
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
T JFrame als JInternalFrame darstellen AWT, Swing, JavaFX & SWT 2
K Swing JInternalFrame und LayoutManager AWT, Swing, JavaFX & SWT 6
C Zeichnen über JInternalFrame der ICEpdf-Dokument anzeigt AWT, Swing, JavaFX & SWT 3
T Aussehen von JFrame bzw JInternalFrame ändern... wie? AWT, Swing, JavaFX & SWT 23
J Swing JInternalFrame AWT, Swing, JavaFX & SWT 5
S Swing JInternalFrame: Mehrere Probleme AWT, Swing, JavaFX & SWT 3
S Swing JInternalFrame: Titelleiste entfernen AWT, Swing, JavaFX & SWT 5
R Swing JFrame oder JInternalFrame? AWT, Swing, JavaFX & SWT 13
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
X JInternalFrame AWT, Swing, JavaFX & SWT 3
G JInternalFrame AWT, Swing, JavaFX & SWT 2
W JInternalFrame alleine funktionsfähig AWT, Swing, JavaFX & SWT 5
A JSplitPane in JInternalFrame AWT, Swing, JavaFX & SWT 2
G JInternalFrame und beinhaltende Komponenten 'abschalten' AWT, Swing, JavaFX & SWT 2
K Tab von JPanel nach JInternalFrame AWT, Swing, JavaFX & SWT 2
M JInternalFrame Titel sichtbar setzen AWT, Swing, JavaFX & SWT 2
K JInternalFrame - schwarzer Bildschirm AWT, Swing, JavaFX & SWT 2
M JInternalFrame ohne Titelbalken AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
S Kontextmenu im JInternalFrame unterdrücken AWT, Swing, JavaFX & SWT 5
G Layerproblem JInternalFrame AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
T JInternalFrame Vollbild Problem AWT, Swing, JavaFX & SWT 4
X Relative positionierung in einem JInternalFrame AWT, Swing, JavaFX & SWT 3
J JInternalFrame "schimmert" durch AWT, Swing, JavaFX & SWT 4
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
DeeDee0815 JInternalFrame in JScrollpane AWT, Swing, JavaFX & SWT 4
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
J JInternalFrame überlagert/unterlagert anderen Elementen AWT, Swing, JavaFX & SWT 2
DeeDee0815 setContentPane()-Problem bei JInternalFrame AWT, Swing, JavaFX & SWT 2
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
F JInternalFrame Look and Feel AWT, Swing, JavaFX & SWT 3
W Realisierung Gradient in der Titlebar JInternalFrame AWT, Swing, JavaFX & SWT 7
T JInternalFrame Konflikt mit LayoutManager AWT, Swing, JavaFX & SWT 5
T JInternalFrame und Iconified AWT, Swing, JavaFX & SWT 10
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
M JInternalFrame mouseEntered/mouseExited AWT, Swing, JavaFX & SWT 8
S Eine Art JInternalFrame in JSplitPane AWT, Swing, JavaFX & SWT 3
G Problem bei JTable in JInternalFrame AWT, Swing, JavaFX & SWT 4
megachucky JInternalFrame Größe und Location nicht einstellbar AWT, Swing, JavaFX & SWT 8
T JPanel mit paintComponent methode im JInternalFrame AWT, Swing, JavaFX & SWT 3
R Rückgabewert TreeSelectionListener für JInternalFrame AWT, Swing, JavaFX & SWT 4
J Applet in JInternalFrame laden AWT, Swing, JavaFX & SWT 9
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
F Anzeigen eines JInternalFrame auf einen JFrame AWT, Swing, JavaFX & SWT 3
B JInternal Frame laden von anderem JInternalFrame AWT, Swing, JavaFX & SWT 3
A JInternalFrame setMaximizeable(false) wehrt sich AWT, Swing, JavaFX & SWT 2
S JInternalFrame AWT, Swing, JavaFX & SWT 8
welterde Menü in der Titelleiste des JInternalFrame AWT, Swing, JavaFX & SWT 4
S Problem, neuen JInternalFrame zur Laufzeit anzuzeigen AWT, Swing, JavaFX & SWT 8
M Cursor im deaktivierten JInternalFrame AWT, Swing, JavaFX & SWT 2
V JInternalFrame in einen Panel? AWT, Swing, JavaFX & SWT 2
C Scrollbalken bei einem JInternalFrame AWT, Swing, JavaFX & SWT 6
G JInternalFrame mit Doppelklick schließen möglich? AWT, Swing, JavaFX & SWT 2
D JInternalFrame unverschiebbar AWT, Swing, JavaFX & SWT 7
G JInternalFrame Fenster Status von Icon nach Normal? AWT, Swing, JavaFX & SWT 5
G lightweight >> heavyweight bei JInternalFrame für JMen AWT, Swing, JavaFX & SWT 13
P JInternalFrame: Verhindern das man es verschieben kann AWT, Swing, JavaFX & SWT 2
K JInternalFrame: internes Fenster zentrieren AWT, Swing, JavaFX & SWT 2
D JInternalFrame beim Öffnen nicht aktiv! AWT, Swing, JavaFX & SWT 5
A Probleme mit JInternalFrame AWT, Swing, JavaFX & SWT 5
javasdann Höhe von Titlebar in jInternalFrame ändern AWT, Swing, JavaFX & SWT 5
S Auf Komponenten eines JInternalFrame zugreifen AWT, Swing, JavaFX & SWT 2
A Ich kann kein JInternalFrame anzeigen ! AWT, Swing, JavaFX & SWT 7
P JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
F Listener für JPanel im JInternalFrame AWT, Swing, JavaFX & SWT 5
S finalizie() bei JInternalFrame wird nicht aufgerufen ! AWT, Swing, JavaFX & SWT 11
A JInternalFrame AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben