Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Button in java.awt und html
- Ersteller blanc
- Erstellt am
- Registriert
- Juni 2018
- Beiträge
- 1.601
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.
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.Wo bin ich hier schrieb:die konkrete Implementierung ist aber natürlich in unterschiedlichen Technologien komplett anders.
@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.
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?Nolag schrieb:Zu einem Button gehört auch die Ereignisbehandlung, denn sonst macht der Button nichts, wenn man darauf klickt.
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, ...
kali-hi
Banned
- Registriert
- Sep. 2025
- Beiträge
- 760
Nein, eigentlich nicht, beide sehen unterschiedlich aus und verhalten sich auch anders. Es gibt keine Gemeinsamkeiten.blanc schrieb:Sind die beiden pratisch vergleichbar, also nur auf verschiedenen Welten?
Ergänzung ()
Die Trigger-Events und Programmierung gehören schon mit zum Button.tollertyp schrieb:Die Aufgabe des Buttons ist es, die Behandlung anzustoßen. Mehr nicht. Mehr gehört nicht zum Button.
kali-hi
Banned
- Registriert
- Sep. 2025
- Beiträge
- 760
Ja gut, das ist eine funktional gemeinsame Eigenschaft.tollertyp schrieb:Ein Button löst ein Event aus.
Aber der Rest ist komplett unterschiedlich.
Nicht ganz, Button ist immer Bestanteil einer Programmiersprache bzw. Frameworks... damit gehört das Event-Handling auch dazu.tollertyp schrieb:Dem Button ist aber egal, wer wie warum auf das Event reagiert.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.884
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.kali-hi schrieb:Nicht ganz, Button ist immer Bestanteil einer Programmiersprache bzw. Frameworks... damit gehört das Event-Handling auch dazu.
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!");
}
});
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. :-)
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.884
Kann sein. Vielleicht wurde der Text auch falsch verstanden.tollertyp schrieb:hätte er nicht von meinem Text sich einen Satz rausgepickt, den Kontext samt der Frage, wo die Grenze gezogen ist, weggelassen
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.
SheepShaver
Commodore
- Registriert
- Nov. 2004
- Beiträge
- 4.594
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.
kali-hi
Banned
- Registriert
- Sep. 2025
- Beiträge
- 760
Doch...SheepShaver schrieb:Was genau passiert, wenn der Button gedrückt wird, hat nichts mehr mit dem Button zu tun.
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?
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.884
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.kali-hi schrieb:(alles bis auf Z. 4)... Das ist schon ziemlich viel, finde ich...
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.
kali-hi
Banned
- Registriert
- Sep. 2025
- Beiträge
- 760
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...andy_m4 schrieb:Der Punkt ist, das alles innerhalb von actionPerformed unabhängig von Rest ist.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 8.884
Ja. Aber zu dem "nicht unbedingt" hatte ich ja auch was gesagt.kali-hi schrieb:Nicht unbedingt,
Wenn Du selber schon einräumst, das das ja nicht immer so ist, dann ist ja auch klar, das es unabhängig ist.kali-hi schrieb:meist bewegt man sich dann innerhalb der Funktionalität der jeweiligen Programmiersprache oder des Frameworks.
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!");
}
});
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.
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.kali-hi schrieb:sout ist nur gerade eine Funktionalität, die eher das unterliegende System betrifft...
Ähnliche Themen
- Antworten
- 6
- Aufrufe
- 938
- Antworten
- 15
- Aufrufe
- 1.169
- Antworten
- 5
- Aufrufe
- 992
- Antworten
- 2
- Aufrufe
- 1.438