tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
2046
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Hi Leute ich bins mal wieder! Und wieder will meine GUI nicht so wie ich:

    Ich habe für ein About Fenster einen JInternalFrame geschrieben. Leider wird er nicht angezeigt. Ich habe jeden gefragt den ich persöhnlich erwischen konnte und habe alles ausprobiert, was ich im Netz gefunden habe. Ihr seit meine letzte Hoffnung.

    Hier der Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    
    private void aboutButtonMousePressed(java.awt.event.MouseEvent evt) {                                         
            JInternalFrame insideWindow = new JInternalFrame("Produktinformation", true, true, false);
            //creates a resizable, closable and not maximizable internal frame
            insideWindow.getContentPane().setLayout(new BorderLayout());
            
            java.awt.GridBagConstraints gridBagConstraints;
     
            JPanel jPanel1 = new javax.swing.JPanel();
            JLabel jLabel1 = new javax.swing.JLabel();
            JLabel jLabel2 = new javax.swing.JLabel();
            JLabel jLabel3 = new javax.swing.JLabel();
            JLabel jLabel4 = new javax.swing.JLabel();
            JLabel jLabel5 = new javax.swing.JLabel();
            JLabel jLabel6 = new javax.swing.JLabel();
            JLabel jLabel7 = new javax.swing.JLabel();
            JLabel jLabel8 = new javax.swing.JLabel();
            JLabel jLabel9 = new javax.swing.JLabel();
            JLabel jLabel10 = new javax.swing.JLabel();
            JLabel jLabel11 = new javax.swing.JLabel();
            JLabel jLabel12 = new javax.swing.JLabel();
            JLabel jLabel13 = new javax.swing.JLabel();
     
            jPanel1.setLayout(new java.awt.GridBagLayout());
     
            jLabel1.setText("Version");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
            gridBagConstraints.insets = new java.awt.Insets(10, 8, 17, 62);
            jPanel1.add(jLabel1, gridBagConstraints);
     
            jLabel2.setText("Entwickler");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 0;
            gridBagConstraints.gridy = 1;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 50);
            jPanel1.add(jLabel2, gridBagConstraints);
     
            jLabel3.setText("Info");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 0;
            gridBagConstraints.gridy = 5;
            gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 1);
            jPanel1.add(jLabel3, gridBagConstraints);
     
            jLabel4.setText("Name 1");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 1;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel4, gridBagConstraints);
     
            jLabel5.setText("Name 2");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 3;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel5, gridBagConstraints);
     
            jLabel6.setText("Name 3");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 4;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            gridBagConstraints.insets = new java.awt.Insets(0, 0, 17, 0);
            jPanel1.add(jLabel6, gridBagConstraints);
     
            jLabel7.setText("NAme 4");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 2;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel7, gridBagConstraints);
     
            jLabel8.setText("Und hier kommt jetzt der Infotext");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 5;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel8, gridBagConstraints);
     
            jLabel9.setText("Vortsetzung Info");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 6;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel9, gridBagConstraints);
     
            jLabel10.setText("noch mehr Info");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 7;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
            jPanel1.add(jLabel10, gridBagConstraints);
     
            jLabel11.setText("Version 1.0");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 0;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
            gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
            jPanel1.add(jLabel11, gridBagConstraints);
     
            jLabel12.setText("Info    ");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 8;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
            gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8);
            jPanel1.add(jLabel12, gridBagConstraints);
     
            jLabel13.setText("und nochmal Infotext");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridx = 1;
            gridBagConstraints.gridy = 9;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
            gridBagConstraints.insets = new java.awt.Insets(0, 0, 8, 0);
            jPanel1.add(jLabel13, gridBagConstraints);
     
            insideWindow.getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
            
            insideWindow.pack();
            insideWindow.setResizable(false);
            
            //insideWindow.setVisible(true);
            insideWindow.show();
            this.getContentPane().add(insideWindow);
        }

    Ich habe alle Komponenten drin gelassen, die auch in meinem Original sind, ist nähmlich das erste mal, dass ich mit GridBagLayout arbeite. Ich kann nicht hundertprozentig ausschließen, das der Fehler dort liegt.

    Mit System.Out.Println() habe ich festgestellt, das er kommplet durchläuft. Aber wie schon gesagt er zeigt nicht das geringste an.

    Für eure Hilfe bin ich schon jetzt dankbar

    ulki
     

  2. #2
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Mal ne Frage: Warum muss es ein InternalFrame sein, reicht nicht auch ein modaler JDialog? Was passiert, wenn Du dafür wirklich einen JDialog benutzt, funktioniert es dann?
     

  3. #3
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Naja ich bin mir nicht sicher, ob ich die Gestaltung, wie sie geplant ist mit einem JDialog genauso hinbekomme.

    Du kennst doch sicher diese Fenster in denen allerhand über das Programm drin steht:
    - Die Versionsnummer
    - Wer es erstellt hat
    - Wann es erstellt wurde
    - Für wen es erstellt wurde
    usw.

    Das soll da alles rein. Ich werde mal schauen, aber ich glaube nicht, dass soetwas auch mit einem JDialog funktioniert.
     

  4. #4
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Zitat Zitat von ulki
    Das soll da alles rein. Ich werde mal schauen, aber ich glaube nicht, dass soetwas auch mit einem JDialog funktioniert.
    Ich schon. Ich halte einen JDialog für solche Sachen für prädestiniert. Ein JDialog unterscheidet sich ja auch nicht viel von einem JFrame - warum und wie Du gerade auf einen InternalFrame kommst, bleibt mir schleierhaft.

    Sehe gerade, das ist mein 1000. Beitrag.
    IIRC habe ich dafür ein Jahr benötigt...
    Geändert von Snape (12.04.05 um 13:28 Uhr) Grund: Jubiläum ;)
     

  5. #5
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Naja, ich habe in dem Javatutorial gelesen was sich wohl dafür eignen würde. Und da stehen halt die Internal Frames drinn.

    Ich werde es mal ausprobieren. Danke nochmal. Ich melde mich dann wenn ich ein Ergebniss habe

    ulki


    Habe vorher noch mal was mit den Internal Frames ausprobiert. Das Fensterchen wird jetzt angezeigt, aber alles was vorher im Fenster zu sehen war ist verschwunden und alles ist blau geworden.
    Hier die Zeilen die ich hinzugefügt habe:

    Code :
    1
    2
    
    JDesktopPane desktop = new JDesktopPane();
            setContentPane(desktop);
    und zwar im initComponents des Hauptfensters

    mal sehen.... immerhin tut sich was.....
    Geändert von ulki (15.04.05 um 08:53 Uhr)
     

  6. #6
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Hi,

    mitlerweile wird das Problem richtig amüsant.

    Habe um den blau Effekt zu umgehen einfach im Aufruf des Inneren Fensters alle Objekte nochmal erstellt und sie auf die DesktopPane anstatt auf die ContentPane gelegt. Und schwups wurde alles richtig angezeigt.
    Nun ergab sich aber folgendes Problem:

    Wenn ich durch klick auf eines der Objekte ein weiteres Fenster öffne, öffnen sich gleich zwei von der Sorte.
    Ich kann mir das nur so erklären, dass die Komponenten meines Fensters dann zweimal existieren und übereinanderliegen.
    Das würde dann ja auch bedeuten, dass mein DesktopPane blau ist und nur alles versteckt. Wenn ich die DesktopPane also durchsichtig bekäme wären beide Probleme gelöst und es würde so klappen wie ich mir das vorstelle.

    Also hat jemand eine Idee, wie man eine JDesktopPane durchsichtig bekommt? Ich werde mal suchen, aber ich bin nicht sehr hoffnungsvoll, da es zu JDesktopPane irgentwie nicht viel gibt.

    Danke schonmal

    ulki

    PS: Habe das setContentPane in den Aufruf des Inneren Fensters verschoben
     

  7. #7
    ulki ulki ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    103
    Habe keine Möglichkeit gefunden die DesktopPane durchsichtig zu machen. Habe daher den Vorschlag von Snape umgesetzt. Funktioniert tadellos.
    Danke für den Tipp.

    Das Programm macht jetzt was es soll, leider aber keine Lösung für das Problem mit dem Internal Frame.

    Aber Lösung ist Lösung

    danke für Hilfe und Geduld

    ulki
     

Ähnliche Themen

  1. I-Frame wird nicht angezeigt
    Von viciousrene im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 18.06.09, 19:54
  2. PHP in div wird in ie5.5/6 nicht angezeigt
    Von El Muerto im Forum PHP
    Antworten: 0
    Letzter Beitrag: 27.08.07, 21:20
  3. PDF wird im IE nicht angezeigt
    Von MbHelm im Forum PHP
    Antworten: 5
    Letzter Beitrag: 26.04.07, 18:55
  4. Div wird nicht angezeigt
    Von VBFreak im Forum CSS
    Antworten: 2
    Letzter Beitrag: 01.07.04, 14:54
  5. Grafik wird nicht im Frame angezeigt
    Von Tobi O im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 11.06.04, 00:03