Hallo,
mich würde mal die Meinung anderer Personen interessieren. Ich stehe bei einer Fragestellung immer zwischen den Stühlen. Es wird im Bereich der Objektorientierten Programmierung empfohlen auf Schnittstellen zu Programmieren. Bei den Swing Komponenten ist das aber nur auf Umwege möglich.
In der Regel lege ich die grafischen Komponenten alle in JPanels und diese lege ich dan in den Container meiner Wahl (JFrame, JInternalFrame, JTabbedPane).
Aktuel gehe ich so vor das ich ein Interface definiere mit den benötigten Methoden. Zusätzlich habe ich eine Methode namens getComponent oder getPanel die je nachdem eine JComponent oder JPanel zurückgibt. Mittels dieser Methode bekomme ich eine Swing Komponente um diese in den Container anzuzeigen.
Ein alternative dich ich mir jedesmal wieder durch den Kopf gehen lasse aber dennoch verwerfe ist wie folgt:
Ich erweitere das JPanel in einer Abstracten Klasse um hier die neuen Funktionalitäten zu definieren. In den tatsächlichen Klassen Programmiere ich diese entsprechend aus.
Was ist eure Meinung dazu??? Wie geht Ihr bei der Swing Programmierung vor??? Gibt es weitere alternativen???
Gruß
Dbausnnd
mich würde mal die Meinung anderer Personen interessieren. Ich stehe bei einer Fragestellung immer zwischen den Stühlen. Es wird im Bereich der Objektorientierten Programmierung empfohlen auf Schnittstellen zu Programmieren. Bei den Swing Komponenten ist das aber nur auf Umwege möglich.
In der Regel lege ich die grafischen Komponenten alle in JPanels und diese lege ich dan in den Container meiner Wahl (JFrame, JInternalFrame, JTabbedPane).
Aktuel gehe ich so vor das ich ein Interface definiere mit den benötigten Methoden. Zusätzlich habe ich eine Methode namens getComponent oder getPanel die je nachdem eine JComponent oder JPanel zurückgibt. Mittels dieser Methode bekomme ich eine Swing Komponente um diese in den Container anzuzeigen.
Code:
public interface ReportUI{
public JComponent getComponent();
public void setReportname(String name);
}
public class DefaultReportUI implements ReportUI{
@Override
public JComponent getComponent(){
.....
}
@Override
public void setReportname(String name){
.....
}
}
Ein alternative dich ich mir jedesmal wieder durch den Kopf gehen lasse aber dennoch verwerfe ist wie folgt:
Ich erweitere das JPanel in einer Abstracten Klasse um hier die neuen Funktionalitäten zu definieren. In den tatsächlichen Klassen Programmiere ich diese entsprechend aus.
Code:
public abstract class ReportUI extends JPanel{
public void setReportname(String name);
}
public class DefaultReportUI extends ReportUI{
@Override
public void setReportname(String name){
.....
}
}
Was ist eure Meinung dazu??? Wie geht Ihr bei der Swing Programmierung vor??? Gibt es weitere alternativen???
Gruß
Dbausnnd