Hallo!
Ich habe ein echt blöd zu erklärendes Problem und hoffe sehr, dass es jemand versteht, weil ich alleine nicht weiterkomme..
Ich möchte Beans schreiben, die möglichst viel Arbeit ersparen sollen. Sie sollen deshalb möglichst auch EventListener implementieren. Aber das mit den EventListenern scheint nicht so zu klappen, wie ich es vorhabe:
Zum Beispiel stellt meine ButtonBean einen TextButton dar und fügt ihn einem KeyListener zu:
Natürlich weiß ich nicht, was später bei Knopfdruck passieren soll, deswegen überschreibe ich die Methode "keyPressed" zunächst nicht.
Will ich später die Bean benutzen instanziere ich die ButtonBean
in meiner neuen Klasse:
Jetz kann ich aber die Methode keyPressed aus der ButtonBean nicht mehr überschreiben, oder?
Deshalb habe ich meiner ButtonBean-Instanz ebenfalls einen KeyListener hinzugefügt (und mit ihm auch eine keyPressed-Methode):
Allerdings klappt das so nicht, da ich den Listener ja jetzt nicht mehr dem Button IN der ButtonBean, sondern der ButtonBean hinzufüge!!! Die Methode "beanKeyPressed" hat so keine Wirkung, da der KeyListener des Buttons in der ButtonBean keine Wirkung hat...
Versteht mich irgendjemand da draußen?
Wie geht es besser? Oder kann ich die keyPressed-Methode der ButtonBean doch noch überschreiben?
Kann mir bitte jemand weiterhelfen???
Ich habe ein echt blöd zu erklärendes Problem und hoffe sehr, dass es jemand versteht, weil ich alleine nicht weiterkomme..
Ich möchte Beans schreiben, die möglichst viel Arbeit ersparen sollen. Sie sollen deshalb möglichst auch EventListener implementieren. Aber das mit den EventListenern scheint nicht so zu klappen, wie ich es vorhabe:
Zum Beispiel stellt meine ButtonBean einen TextButton dar und fügt ihn einem KeyListener zu:
Code:
public class ButtonBean extends HContainer implements KeyListener{
public ButtonLook neuerLook;
public HTextButton textButton = new HTextButton();
public TextButton() {
getResources();
}
public void getResources(){
textButton = new HTextButton("Label",0,0,100,50);
setBounds(textButton.getBounds());
textButton.setBackgroundMode(textButton.BACKGROUND_FILL);
this.add(textButton);
textButton.addKeyListener(this);
}
public void keyReleased(java.awt.event.KeyEvent KeyEvent){
}
public void keyPressed (java.awt.event.KeyEvent KeyEvent) {
}
public void keyTyped(java.awt.event.KeyEvent KeyEvent){
}
}
Will ich später die Bean benutzen instanziere ich die ButtonBean
in meiner neuen Klasse:
Code:
public class UseButtonBean {
public UseButtonBean() {
initComponents();
}
private void initComponents() {
bean = new ButtonBean();
}
private ButtonBean bean;
}
Deshalb habe ich meiner ButtonBean-Instanz ebenfalls einen KeyListener hinzugefügt (und mit ihm auch eine keyPressed-Methode):
Code:
private void initComponents() {
..
bean.addKeyListener(this);
}
private void beanKeyPressed(java.awt.event.KeyEvent evt) {
//hier dann irgendeine Aktion ausführen
}
Allerdings klappt das so nicht, da ich den Listener ja jetzt nicht mehr dem Button IN der ButtonBean, sondern der ButtonBean hinzufüge!!! Die Methode "beanKeyPressed" hat so keine Wirkung, da der KeyListener des Buttons in der ButtonBean keine Wirkung hat...
Versteht mich irgendjemand da draußen?
Wie geht es besser? Oder kann ich die keyPressed-Methode der ButtonBean doch noch überschreiben?
Kann mir bitte jemand weiterhelfen???