JInternalFrame - Maximieren

Bob

Mitglied
Hallo,

ich habe ein Problem mit meinen JInternalFrames:

Wenn ich mehrere InternalFrames geöffnet habe, einen davon maximiere und dann anschließend schließe, dann maximiert sich der nächste in den ich klicke automatisch.

Das verhalten tritt aber nur auf, wenn ich 'SystemLookAndFeel' benutze.

Ist das ein bekanntes Problem? Hat das schon mal jemand beobachtet und weiß jemand wie sich das Problem lösen lässt.

Danke
Bob
 

Ebenius

Top Contributor
Auf meinem Linux kann ich das Verhalten gegen JRE 6 Update 18 mit den Look and Feels Metal, Nimbus, Motif/CDE und GTK+ nicht nachvollziehen.

Dieses Programm habe ich zum Testen verwendet:
Java:
/* (@)JInternalFrameMinimizeTestGui.java */

/* Copyright 2010 Sebastian Haufe

 * Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       [url]http://www.apache.org/licenses/LICENSE-2.0[/url]

 * Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License. */

package com.ebenius;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.*;

/**
 * Test Gui for simple JInternalFrame fun.
 * 
 * @version $Revision$ as of $Date$
 * @author Sebastian Haufe
 * @since Playground-3.8
 */
public class JInternalFrameMinimizeTestGui {

  /** Creates the GUI. Call on EDT, only! */
  static void createAndShowGui() {
    /* internal frame 1 */
    final JInternalFrame internalFrame1 =
          new JInternalFrame("Internal 1", true, true, true, true);
    internalFrame1.setContentPane(new JScrollPane(new JTable(30, 10)));
    internalFrame1.pack();
    internalFrame1.setLocation(170, 90);
    internalFrame1.setVisible(true);

    /* internal frame 2 */
    final JInternalFrame internalFrame2 =
          new JInternalFrame("Internal 2", true, true, true, true);
    internalFrame2.setContentPane(new JScrollPane(new JTree()));
    internalFrame2.pack();
    internalFrame2.setLocation(30, 30);
    internalFrame2.setVisible(true);

    /* desktop pane with internal frames */
    final JDesktopPane desktopPane = new JDesktopPane();
    desktopPane.add(internalFrame1);
    desktopPane.add(internalFrame2);
    desktopPane.setPreferredSize(new Dimension(800, 600));

    /* test frame */
    final JPanel contentPane = new JPanel(new BorderLayout(6, 6));
    contentPane.add(desktopPane);

    final JFrame f = new JFrame("Test Frame: JInternalFrameMinimizeTestGui"); //$NON-NLS-1$
    f.setContentPane(contentPane);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    f.setVisible(true);
  }

  /** @param args ignored */
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

      public void run() {
        try {
          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception ex) {
          System.err.println("System Look and Feel not loaded!");
          ex.printStackTrace();
        }
        createAndShowGui();
      }
    });
  }
}
So bin ich vorgegangen:
  • Programm starten
  • Internal 1: Maximize-Button mit der Maus drücken ==> Internal 1 wird maximiert
  • Internal 1: Close-Button mit der Maus drücken ==> Internal 1 wird geschlossen, Internal 2 in selber Größe und an selber Position sichtbar
Probier doch den selben Test mal bei Dir. Wenn das Problem bei Dir dabei nicht auftaucht, hast Du wahrscheinlich etwas falsch gemacht. Dann müsstest Du mal Quelltext zeigen.

HTH, Ebenius
 

Bob

Mitglied
Ich glaube ich habe das Problem gelöst:

Das ganze liegt am DesktopManager der DesktopPane. Wenn das 'WindowsLookAndFeel' verwendet wird, wird auch der 'WindowsDesktopManager' benutzt. Wenn man jetzt stattdessen den DefaultDesktopManager verwendet scheint das Problem gelöst zu sein.

[JAVA=51] /* desktop pane with internal frames */
final JDesktopPane desktopPane = new JDesktopPane();
desktopPane.setDesktopManager(new DefaultDesktopManager()); //diese Zeile scheint das Problem zu fixen
desktopPane.add(internalFrame1);
desktopPane.add(internalFrame2);
desktopPane.setPreferredSize(new Dimension(800, 600));
[/code]

Danke & Gruß
Bob
 

Ebenius

Top Contributor
Hm. Probiert doch mal eine Standard-Windows-MDI-Anwendung... MDI ist ja beinahe ausgestorben, aber irgendwas wird's schon noch geben. Ich glaube mich zu erinnern, dass sich beispielsweise Word 6 oder mein alter Paint Shop 7 genauso verhalten haben; wenn man ein inneres Fenster maximiert, sind alle Fenster maximiert.

Funktioniert denn CTRL+TAB im Java unter Windows? Das sollte zwischen den selektierten Fenstern wechseln. Kann sein, dass das seltsam anmutet, wenn nur eines davon maximiert ist... :)

Ebenius
 

Bob

Mitglied
CTRL+TAB funktioniert natürlich nicht. Ist ja wohl eher Funktionalität zum selber implementieren ;-)

Bin auf jeden Fall erstmal zufrieden mit dem Verhalten der InternalFrames.

Auf jeden Fall erstmal DANKE für die Mithilfe und Denkanstöße.

Gruß
Bob
 

Ebenius

Top Contributor
CTRL+F6 funktioniert sowohl mit dem DefaultDesktopManager als auch mit dem DefaultDesktopManager.
Ja das dachte ich mir schon. Weil das UI des JDesktopPanes (nicht der Manager) diese Bindings einsetzt. Aber wenn ich den DefaultDesktopManager verwende und eines der Fenster maximiere und dann mit CTRL+F6 auf ein anderes wechsele... Was passiert dann? Ist dann das maximierte Fenster hinter dem normalen? Dieses Verhalten würde einem Windows-Benutzer dann wahrscheinlich ungewohnt vorkommen... Daher überhaupt meine Frage.

Wollte nur meine Gedanken los werden, also nix für ungut. :)
Ebenius
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing JInternalFrame - mit DesktopManager maximieren 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 modal setzen? AWT, Swing, JavaFX & SWT 13
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
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 - 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 modal setzen AWT, Swing, JavaFX & SWT 3
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