Hallo liebe java-gemeinde,
ich habe versucht ein Programm zu erstellen, bei dem das innenliegende Panel über Radiobuttons geändert werden kann. Das kann zum Einen über einen Button erfolgen (das funktioniert). Aktuell ist es so programmiert, dass die Buttons das Layout automatisch wechseln. Allerdings funktioniert es nur bei den ersten drei RadioButtons. Die letzten beiden bleiben ohne Funktion...leider weiß ich aber nicht warum.
LG Sebastian
ich habe versucht ein Programm zu erstellen, bei dem das innenliegende Panel über Radiobuttons geändert werden kann. Das kann zum Einen über einen Button erfolgen (das funktioniert). Aktuell ist es so programmiert, dass die Buttons das Layout automatisch wechseln. Allerdings funktioniert es nur bei den ersten drei RadioButtons. Die letzten beiden bleiben ohne Funktion...leider weiß ich aber nicht warum.
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");
}
}
LG Sebastian