2x JComponent in einem JFrame darstellen?

maracash

Mitglied
Hallo, ich bin hier neu und habe eine frage an spezies.

Ich möchte mehrere grafische JComponente in einem JFrame darstellen. Sozusagen grafische Buttons für Spielmenü, die ich mit der Maus betätigen kann.

Wenn ich

myFrame.add(myJComponent_1);
myFrame.add(myJComponent_2);

tu, dann wird nur die letzte geaddete JComponent angezeigt. Ich muss sie irgendwie von einander trennen und getrennt zeichnen.

Was muss ich tun, damit beide JComponent-Schaltfläche zu sehen sind?
 
einfach einen geeigneten Layout-Manager nehmen...oder deine Button in einen JPanel legen, der hat default-mässig das FlowLayout...das sollte auch passen.

Java:
 javax.swing.JPanel panel = new JPanel();
		panel.add(new JButton("HALLO"));
		panel.add(new JButton("oder"));
		myFrame.add(panel);
 
Danke, jgh, das war sehr schnelle Antwort.

ich habe es gleich ausprobiert.
ich habe wirklich 2 buttons. allerdings möchte ich die grafik/animation für buttons, größe usw. selbst bestimmen. darum habe ich mit JComponent statt JButton gearbeitet.

Ist es möglich bei bei JButton das realisieren, was ich brauche? oder soll ich doch mit JComponent weiter versuchen?
 
Wenn du nur Größe und Icon ändern willst, kannst du den JButton nehmen. Für Animationen sind dort Listener eingebaut (MouseMotionListener, MouseListener), welche bei bestimmten Events den Button entsprechend neu zeichnen. Wenn du da etwas ändern willst, solltest dir eine eigene Button-Klasse erstellen und z.B. andere Button-Klassen (JToggleButton, JButton etc. ) erweitern. Es kommt halt drauf an, was du genau haben willst und wie sich der Button verhalten soll.

Im Prinzip kannst du auch über JComponent gehen, aber da erfindest das Rad neu 🙂.
 
Das stimmt, das Rad neu zu erfinden habe ich nicht vor. Deswegen brauche ich einen Tipp von Erfahrenen.

ich möchte dem user eine auswahl geben, z.b.:

1. Nächsten Level Spielen
2. Das Level noch mal Spielen
3. Sound abschalten
4. Spiel verlassen
usw.

Die Buttons möchte ich mindestens als ein rechteck mit grafik darstellen. Weiterhin möchte ich natürlich die Events von Maus, wenn die über das rechtech geht, abarbeiten können.
 
Da reicht dir der normale JButton. Du musst dem Button einfach einen eigenen MouseListener hinzufügen mit dem du bei einem Click bestimmte Sachen machen kannst. Siehe :MouseListener-Tutorial. im Übrigen findest du auf der oracle-Seite vorallem zum Thema Swing viele Beispielprogramme, die dir helfen können.

So als Anfang als Anstups:
Zum Setzen des Bildes beim JButton:
Java:
.setIcon(image);

Damit nur das Bild gezeichnet wird und nicht der komplette Bereich des Buttons:
Java:
setContentAreaFilled(false)
 
ok, das funk. schon.

Wie würdet ihr vorgehen...?

Mein Spiel läuft in einem JFrame. Wenn Level Complet ist, möchte ich zur Auswahl ein Menü anbieten, z.B.

1. Next Level
2. Exit

Ich will, dass im Hintergrund (unter diesen 2 Buttons) das Spiel noch zu sehen ist.

Das Menü mache ich mit Hilfe eines JPanel (mit LayoutManager BoxLayout) mit 2x JButton.

Würdet ihr dieses JPanel zu meinem JFrame von Spiel adden?
 

Zurück
Oben