Hallo Leute, ich mochte ein Fenster programmieren, indem ich mit einer ComboBox die Sichtabrkeit aller Unterpanels steuern möchte.
Bei meinem Lösungsvorschlag passiert jedoch nichts, es wird kein anderes Panel eingeblendet.
Hat jemand eine Idee, wo der Fehler liegen lönnte?
Hier der Code:
Bei meinem Lösungsvorschlag passiert jedoch nichts, es wird kein anderes Panel eingeblendet.
Hat jemand eine Idee, wo der Fehler liegen lönnte?
Hier der Code:
Java:
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;
public class FEM_Hauptfenster extends JFrame {
private static final long serialVersionUID = 7373328358279206718L;
private Toolkit t;
private int x=0,y=0,width=0,height=0;
//Kompnenten
private JPanel Mastercontainer;
private JComboBox NaviBox;
//Untercontainer
private JPanel Startpanel;
private JPanel Modellpanel;
private JPanel Lastpanel;
private JPanel Ergebnispanel;
//Steuerelemente der einzelnen Panels
private JLabel StartLabel;
private JLabel ModellLabel;
private JLabel LastLabel;
private JLabel ErgebnisLabel;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FEM_Hauptfenster frame = new FEM_Hauptfenster();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public FEM_Hauptfenster() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Ermittlung der Fenstergröße und Position für Vollbild
t=Toolkit.getDefaultToolkit();
Dimension d=t.getScreenSize();
width=t.getScreenSize().width;
height=t.getScreenSize().height;
x=(int)((d.getWidth()-width)/2);
y=(int)((d.getHeight()-height)/2);
setBounds(x, y, width, height);
this.initComponents();
this.initListeners();
setVisible(true);
}
private void initListeners() {
this.NaviBox.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
CardLayout cl=(CardLayout) Mastercontainer.getLayout();
cl.show(Mastercontainer, e.getItem().toString());
}
});
}
private void initComponents() {
this.getContentPane().setLayout(new BorderLayout());
//Anlegen aller Panels
//Erzeugen des Containers für Panels
this.Mastercontainer = new JPanel(new CardLayout());
this.NaviBox=new JComboBox(new String []{"Start","Modell","Lasten","Ergebnisse"});
this.NaviBox.setEditable(false);
//Initialisieren der Untercontainer
this.Startpanel = new JPanel();
this.Modellpanel = new JPanel();
this.Lastpanel=new JPanel();
this.Ergebnispanel=new JPanel();
//Initialisieren der Steuerelemente jedes Panels
//Startpanel
this.StartLabel=new JLabel("Dieses Programm berechnet einen Biegebalken unter Eizellast mit Hilfe der FEM");
//Modellpanel
this.ModellLabel=new JLabel("Hier werden die einzelnen Modellparameter festgelegt");
//Lastpanel
this.LastLabel=new JLabel("Hier sind die einzelnen Lasten zu definieren");
//Ergebnispanel
this.ErgebnisLabel=new JLabel("Hier werden die Ergebnisse der Berechnung ausgegeben*");
//Hinzufügen der Steuerelemente zu den Panels
//Startpanel
this.Startpanel.add(this.StartLabel);
//Modellpanel
this.Modellpanel.add(this.ModellLabel);
//Lastpanel
this.Lastpanel.add(this.LastLabel);
//Ergebnispanel
this.Ergebnispanel.add(this.ErgebnisLabel);
//Hinzufgen der Panels zum Mastercontainer
this.Mastercontainer.add(this.Startpanel,"Startpanel");
this.Mastercontainer.add(this.Modellpanel,"Modellpanel");
this.Mastercontainer.add(this.Lastpanel,"Lastpanel");
this.Mastercontainer.add(this.Ergebnispanel,"Ergebnispanel");
this.getContentPane().add(this.NaviBox, BorderLayout.PAGE_START);
this.getContentPane().add(Mastercontainer, BorderLayout.CENTER);
}
}