Hallo
ich habe ein Problem mit einem JPanel. Ich habe eine JList, welche ich zur Navigation benutze. Wenn ich dort einen Eintrag anklicke, dann ladt mein Programm ein neues JPanel aus einer anderen Klasse. Das funktioniert auch ohne Probleme, nur ich habe auch ein JMenu mit einem Eintrag für die Ansicht und wenn ich hier einen Eintrag auswähle, dann möchte ich, dass dann auch eine JPanel geladen wird, aber er lädt dann nie das neue JPanel
MFG Krammi
ich habe ein Problem mit einem JPanel. Ich habe eine JList, welche ich zur Navigation benutze. Wenn ich dort einen Eintrag anklicke, dann ladt mein Programm ein neues JPanel aus einer anderen Klasse. Das funktioniert auch ohne Probleme, nur ich habe auch ein JMenu mit einem Eintrag für die Ansicht und wenn ich hier einen Eintrag auswähle, dann möchte ich, dass dann auch eine JPanel geladen wird, aber er lädt dann nie das neue JPanel
Code:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.JRadioButton;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.border.BevelBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
public class MainFrame extends JFrame implements WindowListener {
final int WIDTH = 800;
final int HEIGHT = 600;
int navigationWidth=100;//Gibt die Breite des NavigationsPanels an
int navigationMarginLeft = 0; //Gibt den Abstand vom linken Rand des NavigationsPanels an
int navigationMarginTop= 20; // Gibt den Abstand von der Menüzeile des NavigationsPanels an
int mainMarginLeft = navigationWidth + 10;
int mainWidth=WIDTH - mainMarginLeft - 10;
int mainMarginTop=navigationMarginTop;
//Objekte
JMenuBar menubar= null;
JMenu jMenuDatei= null;
JMenu jMenuAnsicht = null;
JMenuItem jMenuItemEnde= null;
JRadioButtonMenuItem jRadioMenuEingabe = null;
JRadioButtonMenuItem jRadioMenuAenderung=null;
JRadioButtonMenuItem jRadioMenuAusgabe=null;
JRadioButtonMenuItem jRadioMenuSicherung=null;
ButtonGroup bgAnsicht= null;
JPanel panelNavigation= null;
JList listNavigation = null;
JPanel panelMain = null;
MainFrame()
{
//this.setResizable(false);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(WIDTH,HEIGHT);
this.setLocation((screenSize.width - this.getWidth())/2, (screenSize.height-this.getHeight())/2);
this.setLayout(null);
this.addWindowListener(this);
this.setVisible(true);
//Menübar
menubar = new JMenuBar();
jMenuDatei = new JMenu("Datei");
jMenuAnsicht = new JMenu("Ansicht");
jMenuItemEnde = new JMenuItem("Ende");
jRadioMenuEingabe = new JRadioButtonMenuItem("Eingabe");
jRadioMenuAenderung = new JRadioButtonMenuItem("Aenderung");
jRadioMenuAusgabe = new JRadioButtonMenuItem("Ausgabe");
jRadioMenuSicherung= new JRadioButtonMenuItem("Sicherung");
bgAnsicht = new ButtonGroup();
bgAnsicht.add(jRadioMenuEingabe);
bgAnsicht.add(jRadioMenuAenderung);
bgAnsicht.add(jRadioMenuAusgabe);
bgAnsicht.add(jRadioMenuSicherung);
jMenuDatei.add(jMenuItemEnde);
jMenuAnsicht.add(jRadioMenuEingabe);
jMenuAnsicht.add(jRadioMenuAenderung);
jMenuAnsicht.add(jRadioMenuAusgabe);
jMenuAnsicht.add(jRadioMenuSicherung);
menubar.add(jMenuDatei);
menubar.add(jMenuAnsicht);
this.setJMenuBar(menubar);
//Menübar ActionListener
jMenuItemEnde.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent e)
{
closeApplication();
}
});
jRadioMenuEingabe.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent e)
{
openEingabe();
}
});
jRadioMenuAenderung.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent e)
{
openAenderung();
}
});
jRadioMenuAusgabe.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent e)
{
openAusgabe();
}
});
jRadioMenuSicherung.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent e)
{
openSicherung();
}
});
//NavigationPanel
panelNavigation = new JPanel();
listNavigation = new JList();
panelMain= new Eingabe();
//Anpassung des NavigationsPanel
panelNavigation.setBorder(new BevelBorder(BevelBorder.RAISED));
panelNavigation.setLayout(new BorderLayout());
listNavigation.addMouseListener(new MouseAdapter()
{
@Override public void mouseClicked(MouseEvent e)
{
switch(listNavigation.locationToIndex(e.getPoint()))
{
case 0:
openEingabe();
break;
case 1:
openAenderung();
break;
case 2:
openAusgabe();
break;
case 3:
openSicherung();
break;
}
}
});
panelNavigation.add(listNavigation);
panelNavigation.setBounds(navigationMarginLeft,navigationMarginTop,navigationWidth,HEIGHT-90);
String[] navigationValue ={"Eingabe","Änderungen","Ausgabe","Sicherung"," "," "};
listNavigation.setListData(navigationValue);
this.add(panelNavigation);
resizeMain();
this.repaint();
}
private void closeApplication()
{
System.exit(0);
}
private void resizeMain()
{
//Anpassung des HauptPanels
panelMain.setBounds(mainMarginLeft,mainMarginTop, mainWidth, HEIGHT-90);
panelMain.setBorder(new BevelBorder(BevelBorder.RAISED));
this.add(panelMain);
}
private void openEingabe()
{
this.remove(panelMain);
panelMain = new Eingabe();
repaintMainPanel();
}
private void openAenderung()
{
panelMain = new Aenderung();
repaintMainPanel();
}
private void openAusgabe()
{
panelMain= new Ausgabe();
repaintMainPanel();
}
private void openSicherung()
{
panelMain= new Sicherung();
repaintMainPanel();
}
private void repaintMainPanel()
{
resizeMain();
this.validate();
panelMain.repaint();
}
@Override public void windowClosing( WindowEvent event )
{
closeApplication();
}
@Override public void windowClosed( WindowEvent event ) { /*Empty*/ }
@Override public void windowDeiconified( WindowEvent event ) { /*Empty*/ }
@Override public void windowIconified( WindowEvent event ) { /*Empty*/ }
@Override public void windowActivated( WindowEvent event ) { /*Empty*/ }
@Override public void windowDeactivated( WindowEvent event ) { /*Empty*/ }
@Override public void windowOpened( WindowEvent event ) { /*Empty*/ }
}
MFG Krammi