Hallo Leute,
ich wollte ein kleines Menüprogramm erstellen. Hierzu habe ich ein Auswahlmenü erstellt. Jetzt möchte ich, wenn ich mit der Maus die einzelnen Menüpunkte anklicke, dass sich die Instanzen der extern eingebundenen Klassen auf das JPanel legen, welches sich im Container befindet. Anschließend soll sich das Layout je nach angegebener Größe anpassen. Ich habe im Hauptprogramm einen Container und zwei JPanels erstellt. Ein JPanel dient nur als Ablage für das Auswahlmenü und das andere JPanel soll als Ablage für die verschiedenen Instanzen dienen.
Bisher öffnet sich das Auswahlfenster und ich kann die Menüpunkte problemlos anklicken. Jedoch öffnen sich immer alle weiteren Instanzen mit und platzieren sich komplett außerhalb des eigentlichen JFrames als eigenes JFrame.
Wie kann ich das unterbinden bzw. die einzelnen Instanzen bei jeglicher Auswahl auf das dafür vorgesehene JPanel legen?
Ich möchte in diesem Fall nur ungern mit einem JTabbedPane arbeiten.
Hier mein bisheriger Code, der einige Male verändert wurde, aber nicht funktioniert wie gedacht:
und ein Blick auf den Anfang der actionPerformed Methode:
Die Deklarationen bzw. Instanzierungen der JPanels etc. wurden natürlich bereits vorgenommen. Trotzdem funktioniert es nicht wie gewünscht.
Falls der Codeausschnitt nicht reicht, füge ich gerne noch den Rest hinzu.
Für einen Tipp oder einen Lösungsansatz wäre ich dankbar.
Lg
ich wollte ein kleines Menüprogramm erstellen. Hierzu habe ich ein Auswahlmenü erstellt. Jetzt möchte ich, wenn ich mit der Maus die einzelnen Menüpunkte anklicke, dass sich die Instanzen der extern eingebundenen Klassen auf das JPanel legen, welches sich im Container befindet. Anschließend soll sich das Layout je nach angegebener Größe anpassen. Ich habe im Hauptprogramm einen Container und zwei JPanels erstellt. Ein JPanel dient nur als Ablage für das Auswahlmenü und das andere JPanel soll als Ablage für die verschiedenen Instanzen dienen.
Bisher öffnet sich das Auswahlfenster und ich kann die Menüpunkte problemlos anklicken. Jedoch öffnen sich immer alle weiteren Instanzen mit und platzieren sich komplett außerhalb des eigentlichen JFrames als eigenes JFrame.
Wie kann ich das unterbinden bzw. die einzelnen Instanzen bei jeglicher Auswahl auf das dafür vorgesehene JPanel legen?
Ich möchte in diesem Fall nur ungern mit einem JTabbedPane arbeiten.
Hier mein bisheriger Code, der einige Male verändert wurde, aber nicht funktioniert wie gedacht:
Java:
JLabel punkte1,punkte11,punkte2,punkte22,telemark;
JTextField eingabe1,weite2,haltungspunkte,eing1,eing2;
ButtonGroup bg;
JRadioButton ja,nein;
Rechner r=new Rechner("");
Skisprung spr=new Skisprung();
Geschwindigkeit_grafisch gg=new Geschwindigkeit_grafisch("");
public VerschiedeneListenerAlsMenue()
{
setSize(300, 300);
setLocationRelativeTo(null);
c=getContentPane();
c.add(nord=new JPanel());
nord.add(mb=new JMenuBar(),BorderLayout.NORTH);
mb.add(m=new JMenu("Auswahl"));
m.add(geschwindigkeitswandler=new JMenuItem("Geschwindigkeitswandler"));
geschwindigkeitswandler.addActionListener(this);
geschwindigkeitswandler.setActionCommand("Geschwindigkeitswandler");
m.add(skisprung=new JMenuItem("Skisprung"));
skisprung.addActionListener(this);
skisprung.setActionCommand("Skisprung");
m.add(rechner=new JMenuItem("Rechner"));
rechner.addActionListener(this);
rechner.setActionCommand("Rechner");
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public VerschiedeneListenerAlsMenue(String titel)
{
setSize(750, 100);
setLocationRelativeTo(null);
c.add(nord=new JPanel());
nord.add(m);
c.add(mitte=new JPanel());
mitte.setLayout(new FlowLayout());
mitte.add(wasTun=new JLabel("<html>Bitte geben Sie eine<br>Geschwindigkeit ein: </html>",JLabel.RIGHT));
mitte.add(eingabe1=new JTextField(10));
mitte.add(auswahl1=new JComboBox(einheiten));
mitte.add(umwandeln=new JButton("umwandeln"));
umwandeln.addActionListener(this);
umwandeln.setActionCommand("umwandeln");
mitte.add(loeschen=new JButton("loeschen"));
loeschen.addActionListener(this);
loeschen.setActionCommand("loeschen");
mitte.add(auswahl2=new JComboBox(einheiten));
mitte.add(anzGeschw=new JLabel("Ihre Geschwindigkeit beträgt: ",JLabel.RIGHT));
mitte.add(ergGeschw=new JLabel());
ergGeschw.setOpaque(true);
ergGeschw.setBackground(Color.WHITE);
repaint();
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
und ein Blick auf den Anfang der actionPerformed Methode:
Java:
@Override
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("Geschwindigkeitswandler"))
{
VerschiedeneListenerAlsMenue vlam=new VerschiedeneListenerAlsMenue("");
vlam.mitte.removeAll();
repaint();
m.add(gg);
Die Deklarationen bzw. Instanzierungen der JPanels etc. wurden natürlich bereits vorgenommen. Trotzdem funktioniert es nicht wie gewünscht.
Falls der Codeausschnitt nicht reicht, füge ich gerne noch den Rest hinzu.
Für einen Tipp oder einen Lösungsansatz wäre ich dankbar.
Lg