Hallo liebe java-Gemeinde,
ich habe ein Programm erstellt, indem über 5 radioButtons das Layout des Innenliegenden Panels geändert wird. Es könnte sowohl über einen Button geändert werden. Aktuell wird das layout direkt ausgeführt. Leider aber nur bei den ersten drei Buttons. bEI den letzten beiden nicht mehr. Ich habe aber auch keine Ahnung wo der Fehler liegt.
LG Sebastian
ich habe ein Programm erstellt, indem über 5 radioButtons das Layout des Innenliegenden Panels geändert wird. Es könnte sowohl über einen Button geändert werden. Aktuell wird das layout direkt ausgeführt. Leider aber nur bei den ersten drei Buttons. bEI den letzten beiden nicht mehr. Ich habe aber auch keine Ahnung wo der Fehler liegt.
Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
public class WechselGUI extends JFrame {
private JTextField eingabe1, eingabe2, eingabe3;
private JLabel ausgabe1, ausgabe2, ausgabe3;
private ButtonGroup gruppe;
private JRadioButton layout1, layout2, layout3, layout4, layout5;
private JButton schaltflaecheLayout, schaltflaecheBeenden;
class MeinListener implements ActionListener, ItemListener {
private JPanel panelInnen;
public MeinListener(JPanel panelInnen){
this.panelInnen = panelInnen;
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("layout-wechsel")) {
if (layout1.isSelected()) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,2));
panelInnen.setVisible(true);
}
if (layout2.isSelected()) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,3));
panelInnen.setVisible(true);
}
if (layout3.isSelected()) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,4));
panelInnen.setVisible(true);
}
if (layout4.isSelected()) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,5));
panelInnen.setVisible(true);
}
if (layout5.isSelected()) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,6));
panelInnen.setVisible(true);
}
}
if (e.getActionCommand().equals("beenden")) {
System.exit(0);
}
}
@Override
public void itemStateChanged(ItemEvent e) {
Object ausloeser = e.getSource();
if (ausloeser instanceof JRadioButton) {
if (layout1.isSelected() == true) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,2));
panelInnen.setVisible(true);
}
if (layout2.isSelected() == true) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,3));
panelInnen.setVisible(true);
}
if (layout3.isSelected() == true) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,4));
panelInnen.setVisible(true);
}
if (layout4.isSelected() == true) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,5));
panelInnen.setVisible(true);
}
if (layout5.isSelected() == true) {
panelInnen.setVisible(false);
panelInnen.setLayout(new GridLayout(0,6));
panelInnen.setVisible(true);
}
}
}
}
public WechselGUI(String text) {
super(text);
JPanel panelInnen, panelRadioButton, panelSchaltflaeche;
panelSchaltflaeche = panelSchaltflaecheErzeugen();
panelInnen = panelInnenErzeugen();
panelRadioButton = panelRadioButtonErzeugen();
add(panelRadioButton, BorderLayout.NORTH);
add(panelInnen, BorderLayout.CENTER);
add(panelSchaltflaeche, BorderLayout.SOUTH);
MeinListener listener = new MeinListener(panelInnen);
schaltflaecheBeenden.addActionListener(listener);
schaltflaecheLayout.addActionListener(listener);
layout1.addItemListener(listener);
layout2.addItemListener(listener);
layout3.addItemListener(listener);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
setResizable(false);
}
private JPanel panelRadioButtonErzeugen() {
JPanel tempPanel = new JPanel();
layout1 = new JRadioButton("Layout A");
layout2 = new JRadioButton("Layout B");
layout3 = new JRadioButton("Layout C");
layout4 = new JRadioButton("Layout D");
layout5 = new JRadioButton("Layout E");
ButtonGroup gruppe = new ButtonGroup();
gruppe.add(layout1);
gruppe.add(layout2);
gruppe.add(layout3);
gruppe.add(layout4);
gruppe.add(layout5);
layout1.setSelected(true);
tempPanel.setLayout(new GridLayout(0,3));
tempPanel.add(layout1);
tempPanel.add(layout2);
tempPanel.add(layout3);
tempPanel.add(layout4);
tempPanel.add(layout5);
tempPanel.setBorder(new TitledBorder("Layout-Auswahl"));
return tempPanel;
}
private JPanel panelInnenErzeugen() {
JPanel tempPanel = new JPanel();
eingabe1 = new JTextField(10);
eingabe2 = new JTextField(10);
eingabe3 = new JTextField(10);
ausgabe1 = new JLabel("Text1");
ausgabe2 = new JLabel("Text2");
ausgabe3 = new JLabel("Text3");
tempPanel.setLayout(new GridLayout(0,2));
tempPanel.add(ausgabe1);
tempPanel.add(eingabe1);
tempPanel.add(ausgabe2);
tempPanel.add(eingabe2);
tempPanel.add(ausgabe3);
tempPanel.add(eingabe3);
tempPanel.setBorder(new TitledBorder("Inneres Layout"));
return tempPanel;
}
private JPanel panelSchaltflaecheErzeugen() {
JPanel tempPanel = new JPanel();
schaltflaecheBeenden = new JButton(" Beenden ");
schaltflaecheBeenden.setActionCommand("beenden");
schaltflaecheLayout = new JButton("Layout-Wechsel");
schaltflaecheLayout.setActionCommand("layout-wechsel");
tempPanel.setLayout(new GridLayout(0,1));
tempPanel.add(schaltflaecheLayout);
tempPanel.add(schaltflaecheBeenden);
tempPanel.setBorder(new TitledBorder("Schaltfläche"));
return tempPanel;
}
public static void main(String[] args) {
new WechselGUI("Layout-Wechsler");
}
}
LG Sebastian