Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Java Event-Verarbeitung (https://www.delphipraxis.net/164624-java-event-verarbeitung.html)

yogie 22. Nov 2011 12:12

Java Event-Verarbeitung
 
Von "außen" erzwungen muß ich mich neuerdings mit Java beschäftigen.
Ich habe genauso begonnen wie vor langer Zeit mit Delphi, also
ein Fenster ein Button und ein Edit, nur mal so zum "spielen".

Dann ging es an die Ereignisbehandlung und ich konnte nicht glauben,
was man da so alles machen muß/soll. Zugegeben ich habe noch nicht
wirklich Zeit investiert, aber im Moment bin ich schon etwas irritiert.

Hat jemand einen Tip für ein gutes Tutorial ?

Bleibt bei Delphi, wenn ihr könnt!!

blackfin 22. Nov 2011 12:26

AW: Java Event-Verarbeitung
 
Was für einen Event-Handler möchstest du denn erstellen?
Wenn du etwas genauer wirst, kann evtl. jemand die Delphi- und Java-Lösung gegenüberstellen.

mquadrat 22. Nov 2011 13:33

AW: Java Event-Verarbeitung
 
Spannend wird es doch erst, wenn du aus einem anderen Thread auf die UI willst 8-)

"Java ist auch nur eine Insel" ist IMHO online verfügbar und für Anfänger eigentlich ganz brauchbar

Phoenix 22. Nov 2011 13:40

AW: Java Event-Verarbeitung
 
Zitat:

Zitat von yogie (Beitrag 1137318)
Dann ging es an die Ereignisbehandlung und ich konnte nicht glauben,
was man da so alles machen muß/soll. Zugegeben ich habe noch nicht
wirklich Zeit investiert, aber im Moment bin ich schon etwas irritiert.

Im Prizip funktionieren 'Events' in Java so:

Anstelle eines Eventhandlers (also einer Methode, die eine bestimmte Signatur erfüllt), übergibst Du ein Objekt, das ein bestimmtes Interface implementiert (das eine Eventhandler-Methode mit passender Signatur vorgibt).

Du hast also im Prinzip nur den Zwischenschritt über die Klasse zusätzlich.

yogie 22. Nov 2011 16:06

AW: Java Event-Verarbeitung
 
Erstmal danke für die Antworten. Das steht alles noch ganz am Anfang.
Es gibt noch keine wirklich konkrete Anwendung. Ich bin auch durchaus
lernbereit, ob es was nützt, sei mal dahingestellt.

Meiner Meinung nach sollte eine (neue) Programmiersprache die Bearbeitung
von Standardaufgaben (siehe Event-Behandlung) für den Anwender so einfach/
transparent wie möglich machen. Bei der Vorgehensweise in Java ist da für mich
erstmal nicht der Fall.

Schönen Abend noch...

mjustin 23. Nov 2011 12:02

AW: Java Event-Verarbeitung
 
Zitat:

Zitat von yogie (Beitrag 1137353)
Meiner Meinung nach sollte eine (neue) Programmiersprache die Bearbeitung
von Standardaufgaben (siehe Event-Behandlung) für den Anwender so einfach/
transparent wie möglich machen. Bei der Vorgehensweise in Java ist da für mich
erstmal nicht der Fall.

Gute kostenlose IDEs, die auch Swing Oberflächen (mit Eventhandlern) erstellen können, gibt es für die Java Platform wie Sand am Meer (NetBeans, IDEA, Eclipse mit WindowBuilder oder hier WindowBuilder) - DFMs in Delphi schreibe ich auch nur ungern mit Notepad - (deja vu :)

Dass Swing in weiten Bereichen umständlicher ist als nötig, sei unbestritten. Dennoch gibt es sehr viele kommerzielle Anwendungen, die komplett auf Swing basieren.

JavaFX 2 könnte aber je nach Anwendungstyp eine Alternative darstellen, die zeitgemäßer ist (Hardware-Rendering):

http://www.netzwelt.de/news/88783-ja...en-source.html

Phoenix 23. Nov 2011 12:29

AW: Java Event-Verarbeitung
 
Zitat:

Zitat von yogie (Beitrag 1137353)
Meiner Meinung nach sollte eine (neue) Programmiersprache die Bearbeitung von Standardaufgaben (siehe Event-Behandlung) für den Anwender so einfach/
transparent wie möglich machen.

Naja.. 'neu' ist bei Java relativ. Das Zeug ist von 1995 :)

sirius 23. Nov 2011 13:42

AW: Java Event-Verarbeitung
 
Zitat:

Zitat von yogie (Beitrag 1137353)
Meiner Meinung nach sollte eine (neue) Programmiersprache die Bearbeitung
von Standardaufgaben (siehe Event-Behandlung) für den Anwender so einfach...

Wie der Feuervogel schon sagte: Java ist nicht neu. Und das Eventhandling ist in Java nicht der Bringer. Das sieht man nicht nur so, wenn man von Delphi kommt, das sehen auch die Hardcore-Javaisten so. Such mal in JavaForen danach. Dort lunscht man dann meist zu .Net rüber und beneidet die C#-Entwickler mit ihren Delegates. Und zudem hofft man mit jeder neuen Java-Version. Aber IMHO hat die 7er diesbezüglich nichts geändert.

Ich bin zwar kein Java-Fachmann, aber so sollte es gehen:
Interface deklarieren
Code:
public interface SimpleEvent {
   public void event(int NR) ;

}
Interface implementieren:
Code:
public class Foo implements SimpleEvent{
   

   /* (non-Javadoc)
    *  Diese Klasse kann noch vieles anderes machen....
    */

   public void event(int NR) {
            system.out.print("ich bin gefeuert mit " + NR);
   }
}
Klasse, die Event feuert:
Code:
public class ichMelde {
        private SimpleEvent simpleEvent; /* Feld zum merken des Events*/
       
        public void setEvent(SimpleEvent e) {
             simpleEvent=e;
        }
       
        void fire() {
            simpleEvent.event(42);
        }
}
und wie du jetzt siehst, kannst du bei ichMelde.setEvent eine Klasse (hier: Foo) angeben, die ein Ereignis behandelt und das entsprechende Interface auch implementiert.

Meist wird zu einem Interface auch noch eine leere Klasse erstellt (die also alle Methoden des Interfaces implementiert, aber ohne was zu tun:
Delphi-Quellcode:
 begin end;
halt). Diese Klasse kann man dann zum aufbauen einer anonymen Methode verwenden. Auch einm häufig gesehenes Beispiel für einen Event-Handler, wenns mal "schnell" gehen muss.

yogie 24. Nov 2011 12:28

AW: Java Event-Verarbeitung
 
Ich hatte nicht damit gerechnet hier ins Grundsaätzliche zu geraten.
Aber trotzdem danke für die Anregungen. Wie schon gesagt, bin ich wohl
durch Delphi ein wenig verwöhnt. (Anfang mit D1 unter WIN3.11).

Aber die Welt dreht sich weiter, man wird sehen. Zu Weihnachten
gibt es dann wohl erstmal ein Buch über Java.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz