S
SE
So ... hier jetzt mal ein zwar sehr umständliches Beispiel ... aber es funktioniert und macht genau das was du hier die ganze Zeit versuchst und wir versuchen dir zu erklären.
@Rest
Ja Leute ich weis ... der Code ist nicht der Beste ... aber er sollte nur aufzeigen wie einfach es ist das zu erreichen was TO wollte ...
Natürlich kann man sich den ganzen Duplicated-Code sparen ... aber ich glaube das würde TO dann wirklich nicht mehr verstehen.
EDIT 2 : Wenn du jetzt aus Gnatz deinen Code rausnimmst ... dann schreib bitte etwas SINNVOLLES. *sowas wie "GELÖSCHT" oder so*
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame implements ActionListener
{
private JButton backButton, exitButton, jButtonOne, jButtonTwo, jButtonThree, jButtonFour;
private JMenuBar jMenuBar;
private JMenu menu;
private JMenuItem jMenuItem;
private JPanel mainPanel, bottomPanel, buttonOnePanel, buttonTwoPanel, buttonThreePanel, buttonFourPanel;
public static void main(String[] args) { (new Test()).start(); }
private Test()
{
super("TEST");
jMenuBar=new JMenuBar();
menu=new JMenu("Hauptfenster");
jMenuItem=new JMenuItem("EXIT");
jMenuItem.addActionListener(this);
jMenuItem.setActionCommand("exitButton");
menu.add(jMenuItem);
jMenuBar.add(menu);
setJMenuBar(jMenuBar);
setLocation(200, 200);
setSize(300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
backButton=new JButton("BACK");
backButton.addActionListener(this);
backButton.setActionCommand("backButton");
backButton.setEnabled(false);
exitButton=new JButton("EXIT");
exitButton.addActionListener(this);
exitButton.setActionCommand("exitButton");
jButtonOne=new JButton("ONE");
jButtonOne.addActionListener(this);
jButtonOne.setActionCommand("jButtonOne");
jButtonTwo=new JButton("TWO");
jButtonTwo.addActionListener(this);
jButtonTwo.setActionCommand("jButtonTwo");
jButtonThree=new JButton("THREE");
jButtonThree.addActionListener(this);
jButtonThree.setActionCommand("jButtonThree");
jButtonFour=new JButton("FOUR");
jButtonFour.addActionListener(this);
jButtonFour.setActionCommand("jButtonFour");
mainPanel=new JPanel();
mainPanel.setLayout(new GridLayout(2, 2, 10, 10));
mainPanel.add(jButtonOne);
mainPanel.add(jButtonTwo);
mainPanel.add(jButtonThree);
mainPanel.add(jButtonFour);
setLayout(new BorderLayout());
add(mainPanel, BorderLayout.CENTER);
bottomPanel=new JPanel();
bottomPanel.add(backButton);
bottomPanel.add(exitButton);
add(bottomPanel, BorderLayout.SOUTH);
buttonOnePanel=new JPanel();
buttonOnePanel.add(new JLabel("BUTTON ONE"));
buttonTwoPanel=new JPanel();
buttonTwoPanel.add(new JLabel("BUTTON TWO"));
buttonThreePanel=new JPanel();
buttonThreePanel.add(new JLabel("BUTTON THREE"));
buttonFourPanel=new JPanel();
buttonFourPanel.add(new JLabel("BUTTON FOUR"));
}
private void start() { setVisible(true); }
public void actionPerformed(ActionEvent e)
{
String com=e.getActionCommand();
if(com.equals("exitButton"))
System.exit(0);
if(com.equals("backButton")) { showMain(); return; }
if(com.startsWith("jButton"))
{
if(com.endsWith("One")) { showOne(); return; }
if(com.endsWith("Two")) { showTwo(); return; }
if(com.endsWith("Three")) { showThree(); return; }
if(com.endsWith("Four")) { showFour(); return; }
}
}
private void showMain()
{
getContentPane().removeAll();
add(mainPanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
backButton.setEnabled(false);
getContentPane().validate();
update(getGraphics());
}
private void showOne()
{
getContentPane().removeAll();
add(buttonOnePanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
backButton.setEnabled(true);
getContentPane().validate();
update(getGraphics());
}
private void showTwo()
{
getContentPane().removeAll();
add(buttonTwoPanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
backButton.setEnabled(true);
getContentPane().validate();
update(getGraphics());
}
private void showThree()
{
getContentPane().removeAll();
add(buttonThreePanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
backButton.setEnabled(true);
getContentPane().validate();
update(getGraphics());
}
private void showFour()
{
getContentPane().removeAll();
add(buttonFourPanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);
backButton.setEnabled(true);
getContentPane().validate();
update(getGraphics());
}
}
@Rest
Ja Leute ich weis ... der Code ist nicht der Beste ... aber er sollte nur aufzeigen wie einfach es ist das zu erreichen was TO wollte ...
Natürlich kann man sich den ganzen Duplicated-Code sparen ... aber ich glaube das würde TO dann wirklich nicht mehr verstehen.
EDIT 2 : Wenn du jetzt aus Gnatz deinen Code rausnimmst ... dann schreib bitte etwas SINNVOLLES. *sowas wie "GELÖSCHT" oder so*
Zuletzt bearbeitet von einem Moderator: