Hallo liebes Forum,
ich habe eine Frage bezüglich des Aufbaus meines Programms.
Ich habe mehrere JPanels die sich einander hinzufügen. Manche dienen nur zu Verknüpfung von anderen und andere wiederum haben andere Komponenten hinzugefügt.
Ich habe hier drei Verscheiden Ansätze ausgearbeitet die das gleiche Aussehen haben und komplett dasselbe JFrame erzeugen. Allerdings sind sie von der Struktur her absolut Verschieden.
Aber welcher macht am meisten Sinn? Wie würdet ihr es Umsetzten? Vielleicht komplett anderes?
Das JFrame soll ein JPanel darstellen das einfach nur JPanels hinzufügt.
(Wollte die Beispiele so simple wie möglich halten)
Beispiel eins:
Beispiel 2:
Beispiel 3:
Ich konnte durch Googlen keine eindeutige Antwort ermitteln.
Danke im Voraus für Antworten!
Viele Grüße
ich habe eine Frage bezüglich des Aufbaus meines Programms.
Ich habe mehrere JPanels die sich einander hinzufügen. Manche dienen nur zu Verknüpfung von anderen und andere wiederum haben andere Komponenten hinzugefügt.
Ich habe hier drei Verscheiden Ansätze ausgearbeitet die das gleiche Aussehen haben und komplett dasselbe JFrame erzeugen. Allerdings sind sie von der Struktur her absolut Verschieden.
Aber welcher macht am meisten Sinn? Wie würdet ihr es Umsetzten? Vielleicht komplett anderes?
Das JFrame soll ein JPanel darstellen das einfach nur JPanels hinzufügt.
(Wollte die Beispiele so simple wie möglich halten)
Beispiel eins:
Java:
public class GUIV1
{
JFrame frame;
JLabel firstLabel;
JLabel secoundLabel;
JButton firstButton;
JButton secoundButton;
public void buildGUI()
{
frame = new JFrame("JPanel - Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
JPanel firstPanel = new JPanel();
firstPanel.setLayout(new GridLayout(1,2));
firstLabel = new JLabel("First Label");
firstPanel.add(firstLabel);
firstButton = new JButton("First Button");
firstPanel.add(firstButton);
frame.add(BorderLayout.CENTER,firstPanel);
JPanel secoundPanel = new JPanel();
secoundPanel.setLayout(new GridLayout(2,1));
secoundLabel = new JLabel("Secound Label");
secoundPanel.add(secoundLabel);
secoundButton = new JButton("Secound Button");
secoundPanel.add(secoundButton);
frame.add(BorderLayout.SOUTH,secoundPanel);
frame.pack();
}
public void showGUI()
{
frame.setVisible(true);
}
public static void main(String[] args)
{
GUIV1 gui = new GUIV1();
gui.buildGUI();
gui.showGUI();
}
}
Beispiel 2:
Java:
public class GUIV2 {
JFrame frame;
public void buildGUI()
{
frame = new JFrame("JPanel - Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
GuiBuilder guiBuilder = new GuiBuilder();
JPanel firstPanel = guiBuilder.getFirstPanel();
JPanel secoundPanel = guiBuilder.getSecoundPanel();
frame.add(BorderLayout.CENTER,firstPanel);
frame.add(BorderLayout.SOUTH,secoundPanel);
frame.pack();
}
public void showGUI()
{
frame.setVisible(true);
}
public static void main(String[] args)
{
GUIV2 gui = new GUIV2();
gui.buildGUI();
gui.showGUI();
}
}
Java:
public class GuiBuilder
{
public JPanel getFirstPanel() //Hier könnte man sich überlegen die Methode statisch zu machen
{
JPanel firstPanel = new JPanel();
firstPanel.setLayout(new GridLayout(1,2));
JLabel firstLabel = new JLabel("First Label");
firstPanel.add(firstLabel);
JButton firstButton = new JButton("First Button");
firstPanel.add(firstButton);
return firstPanel;
}
public JPanel getSecoundPanel() //Hier auch
{
JPanel secoundPanel = new JPanel();
secoundPanel.setLayout(new GridLayout(2,1));
JLabel secoundLabel = new JLabel("Secound Label");
secoundPanel.add(secoundLabel);
JButton secoundButton = new JButton("Secound Button");
secoundPanel.add(secoundButton);
return secoundPanel;
}
}
Beispiel 3:
Java:
public class GUIV3
{
JFrame frame;
public void buildGUI()
{
frame = new JFrame("JPanel - Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(BorderLayout.CENTER,new FirstJPanel());
frame.add(BorderLayout.SOUTH,new SecoundJPanel());
frame.pack();
}
public void showGUI()
{
frame.setVisible(true);
}
public static void main(String[] args)
{
GUIV3 gui = new GUIV3();
gui.buildGUI();
gui.showGUI();
}
}
Java:
public class FirstJPanel extends JPanel
{
public FirstJPanel()
{
setLayout(new GridLayout(1,2));
JLabel firstLabel = new JLabel("First Label");
add(firstLabel);
JButton firstButton = new JButton("First Button");
add(firstButton);
}
}
Java:
public class SecoundJPanel extends JPanel
{
public SecoundJPanel()
{
setLayout(new GridLayout(2,1));
JLabel secoundLabel = new JLabel("Secound Label");
add(secoundLabel);
JButton secoundButton = new JButton("Secound Button");
add(secoundButton);
}
}
Ich konnte durch Googlen keine eindeutige Antwort ermitteln.
Danke im Voraus für Antworten!
Viele Grüße