Java Gui: alles verschwindet nach hinzufügen von JButton?
Guten Tag zusammen,
wenn ich die JButtons hinzufüge verschwindet der JLabel und der Button selber.
ich weis nicht wie ich da vorgehen soll, weil ich erst heute mit Gui angefangen habe zu arbeiten.
Das Bild zeigt, wie es mir anzeigt, wenn ich die JButtons hinzufüge.
Ich würde mich auf eure Antworten freuen :)
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Game {
JFrame window;
Container con;
JPanel titleNamePanel;
JPanel startButtonPanel;
JLabel titleNameLabel ;
Font titleFont = new Font("Times New romans", Font.PLAIN, 28);
JButton startButton;
public static void main(String[] args) {
new Game();
}
public Game() {
window = new JFrame();
window.setSize(800, 600);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setBackground(Color.black);
window.setLayout(null);
window.setVisible(true);
con = window.getContentPane();
titleNamePanel = new JPanel();
titleNamePanel.setBounds(100, 100, 600, 150);
titleNamePanel.setBackground(Color.blue);
titleNameLabel = new JLabel("TEST");
titleNameLabel.setForeground(Color.white);
titleNameLabel.setFont(titleFont);
startButtonPanel = new JPanel();
startButtonPanel.setBounds(300, 400, 200, 100);
startButtonPanel.setBackground(Color.blue);
startButton = new JButton("START");
startButton.setBackground(Color.black);
startButton.setForeground(Color.white);
titleNamePanel.add(titleNameLabel);
startButtonPanel.add(startButton);
con.add(titleNamePanel);
con.add(startButtonPanel);
}
}
1 Antwort
1) Mit welchem Tutorial hast du denn da begonnen, dass du gleich eifrig den zu verwendenden Layout Manager auf null setzt?
Nutze diesen Guide, um ein passendes Layout auszuwählen:
https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
und vergiss das:
window.setLayout(null);
sowie setBounds.
Falls dir das zu kompliziert ist: Es gibt auch Swing Builder für Drag & Drop. Die bekannten IDEs (Eclipse, IntelliJ, NetBeans) haben solche bereits integriert.
2) Der Aufruf:
window.setVisible(true);
sollte erst erfolgen, wenn das komplette Fenster vollständig ist (also alle von dir gewünschten Komponenten angehängt wurden).
Ich bin kurz etwas durch die Videoreihe geskipped und besonders toll finde ich es nicht.
Als verlässliche Quelle für Swing kann ich dir leider nur die Oracle Tutorials empfehlen. Ansonsten gibt es hier noch ein großes Kapitel zu Swing.
https://www.youtube.com/watch?v=vUD5Mo2jjHs
Mit diesen Tutorial mache ich es.
Ich habe auch
ganz nach unten verschoben und
Jetzt funktioniert es auch.
Ich arbeite mir Visual Code.
Vielen Dank