Hallo, bin gerade dabei ein Programm zu schreiben, bei dem über Dialoge hinzugefügt bzw geändert werden kann.
Für die Dialoge habe ich mir eine BaseDialog-Klasse als Grundgerüst geschrieben, jene liefert mir aber immer nur true respektive false zurück, je nachdem wie ich die boolean Variable im Konsruktor des BaseDialog vereinbart habe.
Aufgerufen wird der BaseDialog dann in der Main-Klasse wie gehabt und die Methode exec ausgewertet.
Bei false ist das ersteinmal nicht so schlimm, da eben einfach nix passiert. Wenn ich jedoch ok testweise auf treu setze bringt er mir einen Fehler da ich in der Main-Klasse Felder auslese, diese aber beim Starten des Dialog logischerweise noch nicht gefüllt sind.
Das zweite Problem besteh darin, das es in meinem Programm um Pofessuren und Lehrveranstaltungen geht. Nun möchte ich die Professuren Liste mit der Veranstaltungsliste so verknüpfen, das bei Auswahl einer Profesur nur die zugehörigen Veranstaltungen in der Liste angezeigt werden. Ich hatte mir das so gedacht, das ich in der ProfModel-Klasse ein Veranstaltungsmodel erstelle und darüber dann agiere. Kann das so funktionieren wenn in der Main-Klasse jeweils eine JList für Professuren und Veranstaltungen vorhanden ist?
MfG
Für die Dialoge habe ich mir eine BaseDialog-Klasse als Grundgerüst geschrieben, jene liefert mir aber immer nur true respektive false zurück, je nachdem wie ich die boolean Variable im Konsruktor des BaseDialog vereinbart habe.
Java:
public class BaseDialog extends JDialog {
JFrame frame;
JPanel buttonContainer;
JPanel mainContainer;
JButton okButton;
JButton cancelButton;
GridBagHelper gbh;
AbstractAction closeAction;
boolean ok;
public BaseDialog (Window owner, String title) {
super(owner, title);
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setDefaultLookAndFeelDecorated(true);
frame.setLayout(new BorderLayout());
ok = false;
okButton = new JButton("OK");
okButton.addActionListener(new CloseAction(true));
cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new CloseAction(false));
gbh = new GridBagHelper();
gbh.setInsets(new Insets(3,3,3,3));
buttonContainer = new JPanel();
buttonContainer.setLayout(new GridBagLayout());
mainContainer = new JPanel();
gbh.add(buttonContainer, okButton, 0, 0);
gbh.add(buttonContainer, cancelButton, 0, 1);
frame.add(buttonContainer, BorderLayout.SOUTH);
frame.add(mainContainer, BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);
}
class CloseAction extends AbstractAction {
private boolean actionState;
public CloseAction (boolean state) {
this.actionState = state;
}
@Override
public void actionPerformed(ActionEvent arg0) {
ok = actionState;
frame.setVisible(false);
}
}
public JPanel getMainContainer () {
return mainContainer;
}
public boolean exec () {
frame.pack();
frame.setVisible(true);
return ok;
}
}
Bei false ist das ersteinmal nicht so schlimm, da eben einfach nix passiert. Wenn ich jedoch ok testweise auf treu setze bringt er mir einen Fehler da ich in der Main-Klasse Felder auslese, diese aber beim Starten des Dialog logischerweise noch nicht gefüllt sind.
Das zweite Problem besteh darin, das es in meinem Programm um Pofessuren und Lehrveranstaltungen geht. Nun möchte ich die Professuren Liste mit der Veranstaltungsliste so verknüpfen, das bei Auswahl einer Profesur nur die zugehörigen Veranstaltungen in der Liste angezeigt werden. Ich hatte mir das so gedacht, das ich in der ProfModel-Klasse ein Veranstaltungsmodel erstelle und darüber dann agiere. Kann das so funktionieren wenn in der Main-Klasse jeweils eine JList für Professuren und Veranstaltungen vorhanden ist?
MfG
Zuletzt bearbeitet: