tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
597
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    swalbking swalbking ist offline Mitglied Bronze
    Registriert seit
    Mar 2007
    Beiträge
    33
    Hallo,
    ich würde gern in ein Panel mit GridBagLayout Komponenten einfügen. Jede dieser Komponenten besteht aus einem Hintergrundbild und einem daraufliegendem Button. Bei Klick auf diesen Button soll an dessen Stelle ein kleines Bild angezeigt werden.
    Allerdings zeigt der folgende Code leider nur ein leeres Fenser an:
    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
    
    public class JLayeredPaneTest  extends JFrame  {
            JPanel map;
            JLabel     bildHinten, bildVorne;
            int x = 45;
                int cx = x/3;
            JLayeredPane jlp = new JLayeredPane();
     
            JLayeredPaneTest()
            {
                map = new JPanel();
                map.setBackground(Color.WHITE);
                map.setLayout(new GridBagLayout());
                this.add(map, BorderLayout.CENTER);   
                
                bildHinten = new JLabel();
                bildHinten.setIcon(new ImageIcon("gross.png"));
                bildHinten.setBounds(0,0,x,x);
                bildHinten.setVisible(true);
        
                bildVorne = new JLabel();
                ImageIcon ii = new ImageIcon("klein.png");  
                bildVorne.setIcon(ii);
                
                final JButton button = new JButton( );
     
                button.setBounds(cx*7/6,0,cx*2/3,cx*2/3);
                button.addActionListener( new ActionListener() {
                    public void actionPerformed(ActionEvent e){ 
                            jlp.removeAll();
                            jlp.add(bildHinten,1);
                            bildVorne.setBounds(button.getX()-1/6*cx,0,cx,cx);
                            jlp.add(bildVorne,0);
                    }
                });
                
                jlp.add(bildHinten, 1);
                jlp.add(button, 0);
     
                GridBagConstraints constr = new GridBagConstraints();
                constr.gridx = 0;   
                constr.gridy = 0;   
                constr.anchor = GridBagConstraints.CENTER;  
                   
                map.add(jlp, constr);           
            }
     
            public static void main(String[] args) {
                JLayeredPaneTest test= new JLayeredPaneTest();
                test.setVisible(true);
                test.setSize(600, 400);
            }
    }

    Wenn ich das Layout von "map" auf GridLayout ändere, funktioniert alles wie gewünscht. Allerdings bin ich auf das GridBagLayout angewiesen

    Kann mir jemand helfen?

    Gruß,
    Swalbking
     

  2. #2
    swalbking swalbking ist offline Mitglied Bronze
    Registriert seit
    Mar 2007
    Beiträge
    33
    Nach unzähligen Versuchen, hier die Lösung:

    Die Zeile
    Code :
    1
    
    jlp.setPreferredSize(new Dimension(x,x));
    muss hinzugefügt werden und alles funktioniert wie gewünscht
     

Ähnliche Themen

  1. Scrollfeld innerhalb eines Layers funktioniert nicht auf IPhone oder Pad
    Von fuerte-aventura im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 01.12.10, 05:18
  2. JLayeredPane unt LayoutManager Problem
    Von Ryu20 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 23.03.08, 20:27
  3. Antworten: 3
    Letzter Beitrag: 03.06.07, 12:07
  4. GDI+ - Deklaration funktioniert nur innerhalb einer Funktion?
    Von randomize im Forum Borland CBuilder und VCL
    Antworten: 3
    Letzter Beitrag: 10.05.07, 23:52
  5. JLayeredPane inhalt bleibt unsichtbar
    Von PeteProgram im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 22.05.06, 10:15