Button in java.awt und html

blanc

Lt. Junior Grade
Registriert
Jan. 2018
Beiträge
410
Hi,

in java.awt und html gibt’s jeweils ein Button-Element, das sich gleich verhält. Sind die beiden pratisch vergleichbar, also nur auf verschiedenen Welten?
 
  • Gefällt mir
Reaktionen: kali-hi
In jeder UI-Library gibt es grundlegende UI-Elemente, wie Buttons, Textfelder, Checkboxen... Aus dieser abstrakten Sicht sind sie damit auch vergleichbar; die konkrete Implementierung ist aber natürlich in unterschiedlichen Technologien komplett anders.
 
  • Gefällt mir
Reaktionen: madmax2010 und tollertyp
Wo bin ich hier schrieb:
die konkrete Implementierung ist aber natürlich in unterschiedlichen Technologien komplett anders.
Noch größer wird der Unterschied in der Anwendung, wenn der Button nicht nur eine Aktion im Browser sondern im Server auslosen soll. Das Problem hat man in einer Java Anwendung in der Regel nicht.
 
@tollertyp Naja, das ändert unter Umständen, was man tun muss, um mit dem Button in den unterschiedlichen Kontexten die gleiche Aufgabe zu lösen. Da der TE keine genaueren Angaben gemacht hat, kann man nur spekulieren worauf die Frage abzielt.
 
Und was genau hat die Aktion mit dem Button zu tun? Das verstehe ich immer noch nicht.
Ist es in HTML ein anderer Button, wenn eine Aktion auf dem Server ausgeführt werden soll, oder nur im Browser?
 
Zu einem Button gehört auch die Ereignisbehandlung, denn sonst macht der Button nichts, wenn man darauf klickt.
Nochmal, wir wissen nicht warum der TE die Frage gestellt hat.
 
Nolag schrieb:
Zu einem Button gehört auch die Ereignisbehandlung, denn sonst macht der Button nichts, wenn man darauf klickt.
Nein die Bahandlung gehört nicht zum Button. Die Aufgabe des Buttons ist es, die Behandlung anzustoßen. Mehr nicht. Mehr gehört nicht zum Button. Sonst gehört zum Button alles, was danach passiert. Wo genau siehst du dann die Grenze?

Und generell: Separation of Concerns. Für den Button ist es egal, was danach passiert. Ich stelle erneut die Frage: "Ist es in HTML ein anderer Button, wenn eine Aktion auf dem Server ausgeführt werden soll, oder nur im Browser?"
Und ergänze die Frage: Wird der Button anders konfiguriert, falls die Aktion auf dem Server ausgeführt werden soll oder nur im Browser? Weiß der Button davon irgendwas?
Er bekommt vielleicht einen anderen Eventhandler, aber das bekommt er immer, sonst würden ja alle Buttons die gleiche Aktion machen. Außer man sieht die Ereignisbehandlung als Teil des Buttons, dann muss es halt für jede Aktion einen eigenen Button-Typ geben. Kann man auch machen. Ob das klug ist, das lasse ich lieber andere beurteilen.

Und btw: Der Aktion selbst hinter einem Buttonn ist es in den meisten Fällen auch egal wer sie auslöst - ein Button, ein einfacher Mausklick auf einem Element, ein Menü-Item, ...
 
blanc schrieb:
Sind die beiden pratisch vergleichbar, also nur auf verschiedenen Welten?
Nein, eigentlich nicht, beide sehen unterschiedlich aus und verhalten sich auch anders. Es gibt keine Gemeinsamkeiten.

Ergänzung ()

tollertyp schrieb:
Die Aufgabe des Buttons ist es, die Behandlung anzustoßen. Mehr nicht. Mehr gehört nicht zum Button.
Die Trigger-Events und Programmierung gehören schon mit zum Button.
 
Ein Button löst ein Event aus.
Dem Button ist aber egal, wer wie warum auf das Event reagiert.
 
tollertyp schrieb:
Ein Button löst ein Event aus.
Ja gut, das ist eine funktional gemeinsame Eigenschaft.

Aber der Rest ist komplett unterschiedlich.

tollertyp schrieb:
Dem Button ist aber egal, wer wie warum auf das Event reagiert.
Nicht ganz, Button ist immer Bestanteil einer Programmiersprache bzw. Frameworks... damit gehört das Event-Handling auch dazu.
 
kali-hi schrieb:
Nicht ganz, Button ist immer Bestanteil einer Programmiersprache bzw. Frameworks... damit gehört das Event-Handling auch dazu.
Naja. Also ja. Das Eventmanagement als solches ist an den Button drangeklebt. Das heißt aber nicht, das die Action-Logik nicht vom eigentlichen Button getrennt ist.

Denn was bei dem Klick auf den Button ausgeführt wird, kann ja alles mögliche sein und muss sich nicht notwendigerweise innerhalb des Frameworks bewegen.
Also jetzt mal auf java.awt.Button bezogen:
Java:
Button mybutton = new Button("Klick mich!");
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
       System.out.println("geklickt!");
    }
});
Alles daran gehört zum Framework außer eben was innerhalb von actionPerformed steht.
Also klar. Auch da kannst Du bezug nehmen aufs AWT-Framework. Musst Du aber (wie hier im Beispiel) nicht.
Und theoretisch kannst Du auch die Anmeldung eines ActionListeners komplett weglassen.

Und ich glaube, so war das auch gemeint.

Außerdem empfängt addActionListener eine Referenz. Du musst das also nicht mal in der selben Quelltextdatei definieren, wenn Du es noch weiter separieren willst.

Ich meine, letztlich ist es auch eine Definitionsfrage was man unter "dazugehören" versteht. Du könntest auch sagen, das ganze Programm gehört zum Button weil ohne den Button macht das Programm funktioniert das Programm nicht so wie es soll. :-)
 
  • Gefällt mir
Reaktionen: kali-hi und tollertyp
Ach, wenn er eine vernünftige Antwort hätte, hätte er nicht von meinem Text sich einen Satz rausgepickt, den Kontext samt der Frage, wo die Grenze gezogen ist, weggelassen. Denn er kann keine Grenze ziehen.
 
tollertyp schrieb:
hätte er nicht von meinem Text sich einen Satz rausgepickt, den Kontext samt der Frage, wo die Grenze gezogen ist, weggelassen
Kann sein. Vielleicht wurde der Text auch falsch verstanden.
Evtl. ist es auch nur ein Missverständnis, welches sich noch aufklärt. Häufig ist da ein Beispiel ja auch ganz praktisch, damit man sich nicht rein in abstrakten Formulierungen verliert.
 
  • Gefällt mir
Reaktionen: tollertyp
Ich bin da ganz der selben Meinung. Ein Button ist ein Control in der UI. Was genau passiert, wenn der Button gedrückt wird, hat nichts mehr mit dem Button zu tun.
 
  • Gefällt mir
Reaktionen: Benna und tollertyp
SheepShaver schrieb:
Was genau passiert, wenn der Button gedrückt wird, hat nichts mehr mit dem Button zu tun.
Doch...

1765369647805.png


Hier sind 5 von 6 Zeilen Button-spezifisch (alles bis auf Z. 4)... Das ist schon ziemlich viel, finde ich...

tollertyp schrieb:
Ach, wenn er eine vernünftige Antwort hätte, hätte er nicht von meinem Text sich einen Satz rausgepickt, den Kontext samt der Frage, wo die Grenze gezogen ist, weggelassen. Denn er kann keine Grenze ziehen.

Na ja, nicht direkt... aber das macht eine absolute Aussage auch nicht richtiger...

Btw. - geht's wieder mit dem Flammenwerfern los?
 
kali-hi schrieb:
(alles bis auf Z. 4)... Das ist schon ziemlich viel, finde ich...
Das stimmt zwar. Aber Du könntest ja beliebig viel da rein schreiben. Von daher ist dieses "ist doch nur eine Zeile und das andere ist vergleichen dazu mehr" an der Stelle kein Argument.

Das ist aber gar nicht der eigentliche Punkt.
Der Punkt ist, das alles innerhalb von actionPerformed unabhängig von Rest ist. Du kannst da halt sonst was reinschreiben und das hat keinen direkten Bezug zu Button.
Es sei denn, Du stellst den explizit her in dem Du beispielsweise die Beschriftung des Buttons änderst, wenn Du drauf klickst. Dann kann man machen. Muss es aber nicht.
 
  • Gefällt mir
Reaktionen: tollertyp
andy_m4 schrieb:
Der Punkt ist, das alles innerhalb von actionPerformed unabhängig von Rest ist.
Nicht unbedingt, meist bewegt man sich dann innerhalb der Funktionalität der jeweiligen Programmiersprache oder des Frameworks. Also könnten 5/6 durchaus zutreffend sein. sout ist nur gerade eine Funktionalität, die eher das unterliegende System betrifft...
 
kali-hi schrieb:
Ja. Aber zu dem "nicht unbedingt" hatte ich ja auch was gesagt.

kali-hi schrieb:
meist bewegt man sich dann innerhalb der Funktionalität der jeweiligen Programmiersprache oder des Frameworks.
Wenn Du selber schon einräumst, das das ja nicht immer so ist, dann ist ja auch klar, das es unabhängig ist.
Und wie gesagt: Wenn Du dann noch das Framework benutzt und dann z.B. schreibst:
Java:
Button mybutton = new Button("Klick mich!");
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
       mybutton.setLabel("Danke!");
    }
});
dann kannst Du sogar von mir aus sagen, das ja alle Zeilen "zusammengehören".
Aber im Beispiel von Posting #13 ist es halt nicht so, weil Zeile 4 auch dann funktioniert, wenn AWT gar nicht benutzt wird.

Mal davon abgesehen:
"bewegt sich innerhalb der Funktionalität der jeweiligen Programmiersprache ...." ließe sich ja beliebig ausdehnen. Der Computer gehört demzufolge auch dazu weil es darauf läuft. Und die Wohnung in der der Computer steht natürlich auch. Na und wenn wir schon mal so weit sind, warum an Stadt oder Landesgrenzen aufhören. :-)

Also ja. Man kann sich alles irgendwo zurechtdefinieren. Nur bringt das am Ende niemanden irgendwas.

Und ich meine, ich geb Dir doch schon ein "kommt drauf an". Also noch kompromissbereiter kann man ja kaum noch sein. Und Du willst da trotzdem noch herum diskutieren.

kali-hi schrieb:
sout ist nur gerade eine Funktionalität, die eher das unterliegende System betrifft...
Naja. Weiß nicht, ob man das so sagen kann. Aber selbst wenn: Du kannst da etwas beliebiges reinschreiben (was Dir ja auch schon gesagt wurde). Es gibt also keinen Grund sich da unnötigerweise an dem konkreten Beispiel aufzuhängen.
 
  • Gefällt mir
Reaktionen: tollertyp und kali-hi
Zurück
Oben