tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
360
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    schlseb schlseb ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Ort
    Villingen-Schwenningen (BaWü)
    Beiträge
    25
    Hallo zusammen,

    ich habe das Problem, dass ich ein JLayeredPayne als ContentPane setzen möchte, dafür aber kein Layout vergeben kann. Somit müssen im Prinzip alle Container Elemente mit setBounds platziert werden damit sie ordentlich dargestellt werden.
    Soweit so gut. Nun möchte ich 2 Panels an unterschiedlichen Z-Positionen da rein legen, die genau so groß sind wie mein ContentPane. Ich habe jedoch immer einen kleinen Rand direkt unter der Menüleiste, den ich nicht weg bekomme, obwohl die beiden Panels mit setBounds(0,0, width, height) platziert wurden. Bei aber z.B. einem BorderLayout ist dieser nicht zu sehen.
    Wie bekomme ich diesen Rand weg?

    Anbei zwei Bilder zur Verdeutlichung was ich meine und ein Teil meines Codes (im Bsp. wird ein JPanel, statt eines JLayeredPanes verwendet und auch nur eines der Panels (defaultPanel) hinzugefügt, aber das Problem ist dasselbe, nur das ich beim LayeredPayne kein Layout zur Demonstration nutzen kann). Für Bild 1 sind die auskommentierten Abschnitte mit kompiliert worden.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    
    private JPanel getJContentPane() {
            if (jContentPane == null) {
                jContentPane = new JPanel();
                //jContentPane.setLayout(new BorderLayout());
                jContentPane.add(getDefaultPanel()/*, BorderLayout.CENTER*/);
            }
            return jContentPane;
        }
    Angehängte Grafiken Angehängte Grafiken   
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Wieso kannst du kein Layout vergeben?
     

  3. #3
    schlseb schlseb ist offline Mitglied Bronze
    Registriert seit
    Dec 2006
    Ort
    Villingen-Schwenningen (BaWü)
    Beiträge
    25
    Hm, ich hatte es mit BorderLayout versucht, aber irgendwie nicht hinbekommen. Dann hab ich im java-Tutorial von Sun was gelesen, dass ich irgendwie falsch interpretiert habe. Das wurde mir klar, nachdem ichs auf deine Frage hin nochmal nachgelesen habe.

    Mein Problem bestand darin, dass ich zuerst ein LayeredPane-Objekt instanziert , diesem ein BorderLayout zugewiesen habe und dann mein JPanel hinzufügen wollte (add(getDefaultPanel(), LayeredPayne.DEFAULT_LAYER); ). Das ging jedoch nicht, weil er dann als Constraint ein String erwartet hat und keinen Integer.

    Gelöst habe ich es jetzt folgendermaßen:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    private JLayeredPane getJContentPane() {
            if (jContentPane == null){
                jContentPane = new JLayeredPane();
                jContentPane.setOpaque(true);
                jContentPane.add(getDefaultPanel(), JLayeredPane.DEFAULT_LAYER);
                BorderLayout layout = new BorderLayout();
                jContentPane.setLayout(layout);
                layout.addLayoutComponent(defaultPanel, BorderLayout.CENTER);
                
            }
            return jContentPane;
        }

    Also einfach zuerst alle Components hinzufügen und danach das Layout setzen. Nur, wie bekomme ich jetzt mein zweites (durchsichtiges) Panel genau so groß oben drüber? Ich kann es nicht einfach so einfügen wie das andere und ihm dann ebenfalls CENTER zuweisen, da sie vom Layout anscheinend behandelt werden, als ob sie in einer Ebene liegen würden.
    Wichtig ist auch, dass das 2. Panel nicht immer die Größe des ContentPanes haben, sondern in einem bestimmten Fall nur die linke Hälfte abdecken soll.
    Wie kann ich das am besten umsetzen?
     

Ähnliche Themen

  1. NULL-Layout setzen
    Von pikus im Forum Java
    Antworten: 1
    Letzter Beitrag: 02.12.07, 10:33
  2. [Css-Layout] 100% mit 10px Rand
    Von Danielku15 im Forum CSS
    Antworten: 2
    Letzter Beitrag: 02.04.06, 18:53
  3. null-Layout im JScrollPane
    Von the_skywalker im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 31.01.05, 17:46
  4. Null-Layout in SWT möglich?
    Von CyberTim im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 25.01.05, 15:12
  5. JScrollPane ein Panel mit null Layout hinzufügen
    Von schulzp im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 18.08.04, 16:53