Hallo,
ich habe vor kurzem mit Java Programmierung angefangen und habe ein Programm geschrieben das folgendes tun soll (Quelltext ist unten):
Wenn ich das Programm öffne erscheint folgendes Fenster:
Drücke ich auf 1 erscheint unten auf einem JLabel die 1 und links öffnet sich ein JPanel mit weiteren JButtons.
Drücke ich auf die 2 erscheint unten im Label eine 2 und auf der linken Seite ändern sich die Buttons.
Drücke ich nun wieder auf die 1 sollen wieder die Button Neu 1A, Neu 1B etc erscheinen und die anderen verschwinden und so weiter.
Dies funktioniert auch mit folgendem Code:
Nun zu meinem Problem: Wie man sieht sind im Code ganz unten bei Button2Listener die letzten beiden Zeilen auskommentiert. Entferne ich die Kommentarstriche vor
, will also wenn unten "2" gedrückt wird einen weiteren Button hinzufügen, dann verschwindet (wenn ich vorher "1" gedrückt habe) der 1E Button nicht, siehe Bild:
Drücke ich nun wieder "1" passiert garnichts. Ich verstehe nicht warum sich das Programm nun gänzlich anders verhält obwohl ich lediglich einen weiteren Button hinzugefügt habe.
Ein weiteres Problem: Entferne ich überall im Code das JLabel welches unten die "1" und "2" anzeigt passiert nichts mehr, d.h. wenn ich dann auf "1" oder "2" drücke öffnet sich das linke JPanel überhaupt nicht und es erscheinen dann natürlich auch keine Buttons etc.
Kann mir jemand helfen?
ich habe vor kurzem mit Java Programmierung angefangen und habe ein Programm geschrieben das folgendes tun soll (Quelltext ist unten):
Wenn ich das Programm öffne erscheint folgendes Fenster:
Drücke ich auf 1 erscheint unten auf einem JLabel die 1 und links öffnet sich ein JPanel mit weiteren JButtons.
Drücke ich auf die 2 erscheint unten im Label eine 2 und auf der linken Seite ändern sich die Buttons.
Drücke ich nun wieder auf die 1 sollen wieder die Button Neu 1A, Neu 1B etc erscheinen und die anderen verschwinden und so weiter.
Dies funktioniert auch mit folgendem Code:
Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class SimpleGuiB{
int width = 400;
int height = 400;
JButton button1, button2;
JButton NeuerButton1A = new JButton("Neu 1A.");
JButton NeuerButton1B = new JButton("Neu 1B.");
JButton NeuerButton1C = new JButton("Neu 1C.");
JButton NeuerButton1D = new JButton("Neu 1D.");
JButton NeuerButton1E = new JButton("Neu 1E.");
JButton NeuerButton2A = new JButton("Neu 2A.");
JButton NeuerButton2B = new JButton("Neu 2B.");
JButton NeuerButton2C = new JButton("Neu 2C.");
JButton NeuerButton2D = new JButton("Neu 2D.");
JButton NeuerButton2E = new JButton("Neu 2E.");
JLabel label;
JPanel panelUnten;
JPanel panelLinks;
public static void main(String[] args) {
SimpleGuiB gui = new SimpleGuiB();
gui.los();
}
public void los() {
JFrame frame = new JFrame();
button1 = new JButton("1");
button2 = new JButton("2");
panelUnten = new JPanel();
panelLinks = new JPanel();
label = new JLabel("");
panelUnten.setBackground(Color.red);
panelLinks.setBackground(Color.red);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.getContentPane().add(BorderLayout.SOUTH, panelUnten);
frame.getContentPane().add(BorderLayout.WEST, panelLinks);
button1.addActionListener(new Button1Listener());
button2.addActionListener(new Button2Listener());
panelLinks.setLayout(new BoxLayout(panelLinks, BoxLayout.Y_AXIS));
panelUnten.add(button1);
panelUnten.add(label);
panelUnten.add(button2);
frame.setVisible(true);
}
class Button1Listener implements ActionListener {
public void actionPerformed(ActionEvent event) {
label.setText("1");
panelLinks.removeAll();
panelLinks.add(NeuerButton1A);
panelLinks.add(NeuerButton1B);
panelLinks.add(NeuerButton1C);
panelLinks.add(NeuerButton1D);
panelLinks.add(NeuerButton1E);
}
}
class Button2Listener implements ActionListener {
public void actionPerformed(ActionEvent event) {
label.setText("2");
panelLinks.removeAll();
panelLinks.add(NeuerButton2A);
panelLinks.add(NeuerButton2B);
panelLinks.add(NeuerButton2C);
//panelLinks.add(NeuerButton2D);
//panelLinks.add(NeuerButton2E);
}
}
}
Nun zu meinem Problem: Wie man sieht sind im Code ganz unten bei Button2Listener die letzten beiden Zeilen auskommentiert. Entferne ich die Kommentarstriche vor
Java:
//panelLinks.add(NeuerButton2D);
Drücke ich nun wieder "1" passiert garnichts. Ich verstehe nicht warum sich das Programm nun gänzlich anders verhält obwohl ich lediglich einen weiteren Button hinzugefügt habe.
Ein weiteres Problem: Entferne ich überall im Code das JLabel welches unten die "1" und "2" anzeigt passiert nichts mehr, d.h. wenn ich dann auf "1" oder "2" drücke öffnet sich das linke JPanel überhaupt nicht und es erscheinen dann natürlich auch keine Buttons etc.
Kann mir jemand helfen?