2016-04-10 25 views
0

Also versuche ich Bilder aneinander zu hängen und weil ich diese Bilder auf jbuttons ablege, möchte ich wissen, ob es eine Möglichkeit gibt, jbuttons auf meine bereits existierenden jbuttons zu setzen. Irgendwelche Hilfe bitte.Wie setze ich ein JButton mit einem Bild über ein anderes JButton mit einem Bild?

Edit: Also lassen Sie uns sagen, ich habe eine
Jbutton b = new JButton() und ich stellte es ein Bild-Symbol. dann habe ich eine andere JButton x = new JButton() und legen Sie ein Bildsymbol.

Diese JButtons enthalten zwei verschiedene Symbole. und ich möchte, dass sich die Bilder überschneiden. Ich möchte, dass beide Bilder angezeigt werden, wobei die untere Schaltfläche das größere Bild und die obere Schaltfläche eine kleinere Größe hat. Nicht sicher, ob das klar ist.

+0

Bitte teilen Sie, was haben Sie versucht? Es ist schwer zu verstehen, was du willst. – rdonuk

Antwort

-1

Die einfachste Lösung ist die

JButton j1=new JButton("a"); 
j1.setLayout(new BorderLayout()); 
j1.setBackground(Color.red); 
add(j1); 
JButton j2=new JButton("b"); 
j2.setBackground(Color.yellow); 
j1.add("Center", j2); 

-

Obwohl in der Regel nicht dazu verwendet werden, das Null Layout hier eine Lösung ist, wenn Sie bestimmt Lage und Größe angeben mag:

JButton j1=new JButton("a"); 
j1.setLayout(null); 
j1.setBackground(Color.red); 
JButton j2=new JButton("b"); 
j2.setBackground(Color.yellow); 
j2.setBounds(100, 100, 50, 50); 
j1.add(j2); 
add(j1); 
+0

Vielen Dank für Ihre Hilfe. Das hat mir geholfen, es zu lösen. Nachdem Sie jedoch jbuttons hinzugefügt haben, ist die zweite jbutton nicht skalierbar, wenn ich versuche, die Größe zu ändern. Egal welche Größe ich gebe, der 2. jbutton ist immer gleich. Irgendwelche Ratschläge dazu? – Kisuna97

+1

(1-) für das Vorschlagen eines Null-Layouts, besonders wenn eine richtige Lösung bereits gegeben wurde. Dies wird andere Probleme verursachen, die das OP noch nicht gefunden hat. @ Kisuna97, "Irgendwelche Ratschläge dazu?" - Ja, ich gab dir die Antwort. Nimm keine Abkürzungen. Es gibt einen Grund, warum Abkürzungen auf lange Sicht nicht funktionieren. – camickr

+0

@camickr Wenn Sie ein OverlayLayout verwenden, wie würden Sie die Größe der untergeordneten Schaltfläche ändern? Die Verwendung von 'setSize()' und 'setPreferredSize()' funktioniert auch nicht. – Kisuna97

2

Sie können die OverlayLayout verwenden, um Komponenten übereinander zu stapeln.

Normalerweise wird beim Layout-Layout-Layout-Layout von den Komponenten in 2 Dimensionen ausgegangen. In diesem Fall müssen Sie jedoch die Methode isOptimizedDrawingEnabled() überschreiben, um anzugeben, dass Komponenten gestapelt sind. Dies macht das Lackieren ein wenig weniger effizient, aber es wird benötigt, um sicherzustellen, dass die Komponenten richtig lackiert werden.

+0

Also muss ich das overlayLayout auf einem jpanel verwenden, um dies zu tun. Weil ich bereits Board von 49 jbuttons habe und alles, was ich will, ist, einige jbuttons auf dem Brett zu überlagern. Um Ihre Methode zu tun, würde ich wie 49 jpanels erstellen und dann jedes Panel – Kisuna97

+0

@ Kisuna97 überlagern, könnten Sie JLabels verwenden. Legen Sie das Layout des übergeordneten Elements auf BorderLayout fest, und fügen Sie dann das untergeordnete Element dem übergeordneten Element hinzu. – camickr

+0

also Ihr Spruch, JLabels zu verwenden? Aber ich sehe nicht, wo das hinführen wird, wo ich 3 Komponenten in 1 Punkt haben kann. Aber ich kann so etwas wie 49 Panels in einer 7 von 7 verwenden und so viele Komponenten hinzufügen, wie ich will, indem ich overlayLayOut richtig einsetze? – Kisuna97

Verwandte Themen