Hi Leute,
habe mal wieder ein wohl etwas größeres Problem :/
Folgendes:
Habe eine MainFrame Klasse, in der das Frame gebuildet wird. Weiters habe ich eine ChangeMainFramePanel Klasse, in der ich auf das MainFrame die jeweilig richtigen Komponenten anzeige.
Dazu habe ich 4 verschiedene Panel Klassen: Header, Default, Kalender, Timetable.
In der Header Klasse werden die Toolbar usw auf das Frame getan, unteranderem gibt es dort 2 Buttons, die mir das umschalten auf die 2 Panels Kalender und Timetable ermöglichen sollen.
Wo genau muss ich jetzt den ActionListener implementieren ?
In der MainFrame Klasse oder in der HeaderPanel Klasse oder gehört der Code überhaupt ganz wo anders hin ?
Hier noch die Codes:
habe mal wieder ein wohl etwas größeres Problem :/
Folgendes:
Habe eine MainFrame Klasse, in der das Frame gebuildet wird. Weiters habe ich eine ChangeMainFramePanel Klasse, in der ich auf das MainFrame die jeweilig richtigen Komponenten anzeige.
Dazu habe ich 4 verschiedene Panel Klassen: Header, Default, Kalender, Timetable.
In der Header Klasse werden die Toolbar usw auf das Frame getan, unteranderem gibt es dort 2 Buttons, die mir das umschalten auf die 2 Panels Kalender und Timetable ermöglichen sollen.
Wo genau muss ich jetzt den ActionListener implementieren ?
In der MainFrame Klasse oder in der HeaderPanel Klasse oder gehört der Code überhaupt ganz wo anders hin ?
Hier noch die Codes:
Java:
import javax.swing.*;
@SuppressWarnings("serial")
public class MainFrame extends JFrame{
public MainFrame(){
MainFramePanelChange.getParent(this);
MainFramePanelChange.setDefaultPanel();
}
public static void main(String[] args) {
BuildMainFrameMainParts buildparts = new BuildMainFrameMainParts();
buildparts.buildLookAndFeel();
MainFrame frame = new MainFrame();
buildparts.buildProperties(frame);
LoginDialog dialog = new LoginDialog(frame);
}
}
Java:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainFramePanelChange {
private static CalendarPanel calendarPanel = new CalendarPanel();
private static DefaultPanel defaultPanel = new DefaultPanel();
private static TimetablePanel timetablePanel = new TimetablePanel();
private static HeaderPanel headerpanel = new HeaderPanel();
private static JFrame parent;
public static void getParent(JFrame frame){
parent = frame;
}
public static void setCalendarPanel() {
JPanel defaultheader = new JPanel(new BorderLayout());
parent.getContentPane().removeAll();
defaultheader.add(headerpanel, BorderLayout.NORTH);
defaultheader.add(calendarPanel, BorderLayout.CENTER);
parent.getContentPane().add(defaultheader);
}
public static void setDefaultPanel() {
JPanel defaultheader = new JPanel(new BorderLayout());
parent.getContentPane().removeAll();
defaultheader.add(headerpanel, BorderLayout.NORTH);
defaultheader.add(defaultPanel, BorderLayout.CENTER);
parent.getContentPane().add(defaultheader);
}
public static void setTimetablePanel() {
JPanel defaultheader = new JPanel(new BorderLayout());
parent.getContentPane().removeAll();
defaultheader.add(headerpanel, BorderLayout.NORTH);
defaultheader.add(timetablePanel, BorderLayout.CENTER);
parent.getContentPane().add(defaultheader);
}
}
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@SuppressWarnings("serial")
public class HeaderPanel extends JPanel implements ActionListener {
private BuildMainFrameActions action = new BuildMainFrameActions();
private JMenuBar menubar;
private JToolBar toolbar1;
private JMenu dateinmenu, hilfemenu;
private JButton timetableButton, calendarButton;
final Icon calendaricon = new ImageIcon(MainFrame.class.getResource("/images/calendar_20x20.jpg"));
public HeaderPanel(){
this.setLayout(new GridLayout(2,1));
menubar = new JMenuBar();
menubar.setBackground(new Color(0xA5D3DF));
toolbar1 = new JToolBar();
toolbar1.setRollover(true);
toolbar1.setFloatable(false);
toolbar1.setBackground(new Color(0xA5D3DF));
timetableButton = new JButton("Stundenplan");
timetableButton.addActionListener(this);
timetableButton.setIcon(calendaricon);
timetableButton.setBackground(new Color(0xA5D3DF));
calendarButton = new JButton("Kalender");
calendarButton.addActionListener(this);
calendarButton.setIcon(calendaricon);
calendarButton.setBackground(new Color(0xA5D3DF));
dateinmenu = new JMenu("Datei");
hilfemenu = new JMenu("Hilfe");
dateinmenu.add(action.openAction()); //OpenAction aus BuildMainFrameActions wird geadded
dateinmenu.addSeparator();
dateinmenu.add(action.exitAction()); //ExitAction aus BuildMainFrameActions wird geadded
menubar.add(dateinmenu);
menubar.add(hilfemenu);
toolbar1.add(calendarButton);
toolbar1.addSeparator();
toolbar1.add(timetableButton);
toolbar1.addSeparator();
toolbar1.setBorder(BorderFactory.createRaisedBevelBorder());
this.add(menubar);
this.add(toolbar1);
this.setVisible(true);
}
//Hier habe ich aus eigener Überlegung mal die Actions gemacht aber bin mir nicht so sicher ob das stimmt ...
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == calendarButton){
MainFramePanelChange.setCalendarPanel();
}
if(e.getSource() == timetableButton){
MainFramePanelChange.setTimetablePanel();
}
}
}