Hallo zusammen,
folgendes Problem:
ich initialisiere eine hashMap mMap mit String handle als key und UIComponent als value. UIComponent ist eine Klasse mit einem handle auf sich selbst, einem handle auf seinen parent und dem javax.swing entsprechenden JComponent, also JButton usw.
In einer auf java basierenden 4GL kann man dann Funktionen wie getText(String handle) aufrufen, die dann wiederrum auf Javaseite folgende Funktion aufruft:
Meine Frage ist nun: Gibt es einen schöneren Weg, als in jeder von mir zur Verfügung gestellten Funktion mit instanceof zu prüfen, um welche Komponente es sich handelt? Da man ja nicht nur von Textfeldern und Buttons den Text holen kann, und noch weitere Funktionen wie setText(String handle) dazukommen sollen, wär mir ein schönerer Weg recht.
Danke für eure Hilfe.
Grüße
StefanTmp
folgendes Problem:
ich initialisiere eine hashMap mMap mit String handle als key und UIComponent als value. UIComponent ist eine Klasse mit einem handle auf sich selbst, einem handle auf seinen parent und dem javax.swing entsprechenden JComponent, also JButton usw.
In einer auf java basierenden 4GL kann man dann Funktionen wie getText(String handle) aufrufen, die dann wiederrum auf Javaseite folgende Funktion aufruft:
Java:
static public String getText(String pComponentId) throws Exception {
if ((mMap.get(pComponentId).getMObject()) == null) {
throw new Exception("getText: " + pComponentId + " not available");
}
String lResult = null;
4LUIComponent lComponent = mMap.get(pComponentId);
if (lComponent.getMObject() instanceof JTextField) {
JTextField lField = (JTextField) lComponent.getMObject();
lResult = lField.getText();
} else if(lComponent.getMObject()instanceof JButton){
JButton lButton = (JButton) lComponent.getMObject();
lResult=lButton.getText();
}
return lResult;
}
Danke für eure Hilfe.
Grüße
StefanTmp