ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
597
597
EMPFEHLEN
-
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
-
Nach unzähligen Versuchen, hier die Lösung:
Die Zeile
muss hinzugefügt werden und alles funktioniert wie gewünschtCode :1
jlp.setPreferredSize(new Dimension(x,x));
Ähnliche Themen
-
Scrollfeld innerhalb eines Layers funktioniert nicht auf IPhone oder Pad
Von fuerte-aventura im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 01.12.10, 05:18 -
JLayeredPane unt LayoutManager Problem
Von Ryu20 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 23.03.08, 20:27 -
SQL-Abfrage innerhalb einer Funktion mit Parameter funktioniert nicht
Von qsrs im Forum PHPAntworten: 3Letzter Beitrag: 03.06.07, 12:07 -
GDI+ - Deklaration funktioniert nur innerhalb einer Funktion?
Von randomize im Forum Borland CBuilder und VCLAntworten: 3Letzter Beitrag: 10.05.07, 23:52 -
JLayeredPane inhalt bleibt unsichtbar
Von PeteProgram im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 22.05.06, 10:15





Zitieren
Login





