# Methoden kommentieren



## Codix (3. Nov 2020)

Hier sind Methoden aus einem Quellcode, die ausführlich kommentiert werden müssen.

Kann jemand diese Methoden Zeile für Zeile richtig kommentieren, was jede Zeile jeweils bedeutet. 

[CODE lang="java" title="Methoden"]// die Methode zum Ausschneiden
    @FXML
    protected void ausschneiden(ActionEvent event) {
        //    den ausgewählten Text erlangen
        String text = editor.getSelectedText();

        // Instanz inhalt der Klasse ClipboardContent erzeugen
        ClipboardContent inhalt = new ClipboardContent();
        inhalt.putString(text);
        systemClipboard.setContent(inhalt);
        // Instanz umfang der Klasse IndexRange erzeugen
        IndexRange umfang = editor.getSelection();

        // festlegen, welcher Text ausgeschnitten werden soll
        String origText = editor.getText();
        String ersterTeil = StringUtils.substring(origText, 0, umfang.getStart());
        String letzterTeil = StringUtils.substring(origText, umfang.getEnd(), StringUtils.length(origText));
        editor.setText(ersterTeil + letzterTeil);
        // Einfügemarke positionieren
        editor.positionCaret(umfang.getStart());

    }

    // die Methode zum Kopieren
    @FXML
    protected void kopieren(ActionEvent event) {
        String kopierenText = editor.getText();
        final Clipboard clipboard = Clipboard.getSystemClipboard();      
        final ClipboardContent inhalt = new ClipboardContent();
        inhalt.putString(kopierenText);
        clipboard.setContent(inhalt);
    }

    // die Methode zum Einfügen
    @FXML
    protected void einfügen(ActionEvent event) {

        String clipboardText = systemClipboard.getString();

        IndexRange umfang = editor.getSelection();

        //    den ausgewählten Text erlangen
        String origText = editor.getText();

        int endPos = 0;
        String updatedText = "";
        String ersterTeil = StringUtils.substring(origText, 0, umfang.getStart());
        String letzterTeil = StringUtils.substring(origText, umfang.getEnd(), StringUtils.length(origText));

        updatedText = ersterTeil + clipboardText + letzterTeil;

        if (umfang.getStart() == umfang.getEnd()) {
            endPos = umfang.getEnd() + StringUtils.length(clipboardText);
        } else {
            endPos = umfang.getStart() + StringUtils.length(clipboardText);
        }

        editor.setText(updatedText);
        editor.positionCaret(endPos);

    }
[/CODE]


Danke im Voraus


----------



## httpdigest (3. Nov 2020)

Solche Kommentare sind einfach nur unnötig:

```
// Instanz inhalt der Klasse ClipboardContent erzeugen <- unnötig
ClipboardContent inhalt = new ClipboardContent();
...
// Instanz umfang der Klasse IndexRange erzeugen <- unnötig und wahrscheinlich falsch
IndexRange umfang = editor.getSelection();
```
zumal beim letzten Kommentar wahrscheinlich sogar ein Copy&Paste-Fehler des ersten Kommentares passierte...

Desweiteren:


Codix hat gesagt.:


> Kann jemand diese Methoden Zeile für Zeile richtig kommentieren, was jede Zeile jeweils bedeutet.


Und du kannst das nicht, weil?


----------



## kneitzel (3. Nov 2020)

Wollen wir das nicht einfach umdrehen? Was genau verstehst Du nicht an dem Code? Das klingt extrem nach Hausaufgabe und die solltest Du selbst lösen und wir sollten Dir nur bei Verständnisproblemen helfen.

Wenn das keine Hausaufgabe ist: @httpdigest hat ja schon klar geschrieben, dass so Kommentare unnötig sind. Ich gehe sogar noch weiter: Sie sind extrem kontraproduktiv und zeigen maximal, dass der Code an sich unleserlich ist. Da helfen dann aber keine Kommentare sondern schlicht ein Refactoring des Codes ...


----------



## Codix (3. Nov 2020)

httpdigest hat gesagt.:


> Solche Kommentare sind einfach nur unnötig:
> 
> ```
> // Instanz inhalt der Klasse ClipboardContent erzeugen <- unnötig
> ...


@httpdigest: ich stelle Fragen, nicht um solche Gegenfragen zu bekommen, die völlig unangemessen sind.
Weil ich überfordert bin. Schon mal was von Krisen gehört? Oder willst du mir jetzt etwa wieder ins Gewissen reden(dass ich es ja doch lieber perfekt lernen sollte, bevor ich so etwas frage) und dich dann ausreden, dass du mich pseudohaft motivieren willst?

Entweder hast du eine passende Antwort parat oder du lässt es, denn für PseudoDiskussionen habe ich keine Zeit.


----------



## httpdigest (3. Nov 2020)

Die 5 1/2 Phasen beim Erschleichen von Lösungen für Aufgaben
					

Die 5 1/2 Phasen des Versuches, sich die Lösung von Aufgaben zu erschleichen: (c) Copyrights 2008  Phase 1: Dreist sein Es wird einfach die Frage gestellt, ob jemand einfach so und ohne Bezahlung bereit wäre, eine bestimmte Aufgabe zu lösen. Oft wird garnicht gesagt, was die Aufgabe ist, aber...



					www.java-forum.org
				



Ich glaube, wir haben die Phase 2, 3 und 4 hier schon sofort übersprungen und sind schon bei Phase 5. 
Aber, um nochmal auf Phase 2 zurückzukommen: Wieviel Euros bietest du denn für solch eine Auftragsarbeit, bei der du offensichtlich nicht die geringste Lust hast, es selbst zu erledigen oder dir dabei helfen zu lassen?


----------



## kneitzel (3. Nov 2020)

Danke für die Klarstellung, dass es nur um Hausaufgaben geht. Die wird aber wohl niemand hier für Dich machen. Fragen zum Verständnis sind immer gerne willkommen, aber irgendwie läuft es bei Dir immer auf fertige Lösungen hinaus...

Ansonsten noch ein paar generelle Tipps:
a) Zu den Klassen gibt es Dokumentation. Die wirst Du hoffentlich schon kennen! Ansonsten auch der Hinweis zu Google: Man kann z.B. auch nach Dingen suchen wie "JavaFX ClipboardContent example" - das habe ich jetzt nicht geprüft, aber da wirst Du bestimmt einiges finden - und auch mit gewissen Kommentaren...
b) Du beschäftigst Dich jetzt schon relativ lange mit Java. Eine Entwicklungsumgebung mit Debugger wirst Du hoffentlich haben und bedienen können. Also da Breakpoints setzen, das Programm aufrufen und dann einfach mal schauen, was in den Variablen so drin stecht und beobachten, was der Code so macht ....
c) Die Funktion des Codes sollte klar sein - aber vorsichtshalber einfach noch der Hinweis: Da geht es um die Zwischenablage mit Copy, Paste und Cut. Wenn Dir unklar ist, was diese Operationen machen, dann probiere es mit einem GUI Editor. Text rein schreiben und schauen, was er bei den Operationen macht... Mal mit Text ausgewählt und mal nicht .. (Sprich: Was passiert, wenn Du Text markiert hast und Du aus der Zwischenablage einfügst?) ==> Damit wirst Du zumindest die grobe Funktionalität erfassen. Es mag Abweichungen geben, aber mit der groben Beschreibung dürfte das Meiste klar werden ...

Natürlich ist die Liste nicht vollständig. Das ist so ein Minimum. Ich würde generell mit so Code spielen. Was kann alles verändern und wie verändert sich dann das Verhalten? So bekommt man ein deutlich tieferes Verständnis.

Damit bin ich dann aber jetzt auch raus. Hinweise, wie Du Java lernen / begreifen könntest, hattest Du schon sehr viele. Die Hinweise werden aber ignoriert und somit wird auch dies eine reine Zeitverschwendung sein fürchte ich...


----------



## Codix (3. Nov 2020)

also wenn das Kommentieren für euch schon zu viel ist, aber Romane zu anderen irrelevanten Themen so wichtig ist, dann schliesse ich den Pfad, denn ich wollte keine Diskussion mit Schwätzern anfangen, sondern sachliche Antworte haben.

Dies ist kein Kaffeeklatschforum und ich bin keine Hausfrau. Und die Lage ist nicht die Urlaubslage mit 1000 Stunden Zeit zum Quasseln. Sucht euch andere Gesprächspartner, anscheinend habt ihr Quasselbedürfnisse & wollt nicht wirklich konstruktiv beitragen.


----------



## httpdigest (3. Nov 2020)

Nochmal die Frage, wieviel du denn bietest.
Davon können es dann ja andere Leute abhängig machen, ob sie ihre Zeit mit der Lösung deiner Aufgabe verbringen und sich noch den einen oder anderen Euro dazugewinnen wollen.
Wenn du also einfach eine Hausaufgabe reinstellst und wirklich nur an deren Lösung interessiert bist (Auftragsarbeit), am besten gleich dazuschreiben: €100,- oder so. Dann wird sich auch sofort jemand finden und es entsteht eben keine lange Diskussion.
Als Tipp für die Zukunft.


----------



## Codix (3. Nov 2020)

httpdigest hat gesagt.:


> Nochmal die Frage, wieviel du denn bietest.
> Davon können es dann ja andere Leute abhängig machen, ob sie ihre Zeit mit der Lösung deiner Aufgabe verbringen und sich noch den einen oder anderen Euro dazugewinnen wollen.
> Wenn du also einfach eine Hausaufgabe reinstellst und wirklich nur an deren Lösung interessiert bist (Auftragsarbeit), am besten gleich dazuschreiben: €100,- oder so. Dann wird sich auch sofort jemand finden und es entsteht eben keine lange Diskussion.
> Als Tipp für die Zukunft.


du bist ein voreingenommener Geldgeier, welcher mir best. Verhaltensweisen unterstellt und ich würde dich gern blockieren, denn deine Beiträge sind nur störend.


----------



## thecain (3. Nov 2020)

Und du bist einfach nur faul und schummelst dich durchs Studium/Ausbildung. Dann erwartest du auch noch das dir deine Hausaufgaben gemacht werden. Ich glaube du vergisst, das wir hier zum Antworten nicht bezahlt werden und das zum "Spass" machen.


----------



## kneitzel (3. Nov 2020)

Codix hat gesagt.:


> du bist ein voreingenommener Geldgeier, welcher mir best. Verhaltensweisen unterstellt und ich würde dich gern blockieren, denn deine Beiträge sind nur störend.


Ich habe Dir eine PM geschickt, denn ich muss Dein Verhalten nicht öffentlich diskutieren. Die Aussagen von @httpdigest sind aber die, die wirklich immer schön sachlich bleiben. Aber ich bezweifle, dass er Interesse an so etwas hat - der Vorschlag war also kein Angebot von seiner Seite, dir die Lösung für 100€ zu geben oder so. 

Und statt die Hausaufgaben zu erstellen (Halte ich für einen Betrug, denn Du gibst fremde Leistungen für Deine eigenen aus - und wenn ich da mitmache, mache ich mich meiner Meinung nach mit schuldig, denn dass dieser Betrug stattfinden wird, ist ja offensichtlich!) wäre eine online Session zur Erläuterung des Codes deutlich besser. Dann verstehst Du, was der Code macht und dann könntest Du die Kommentare selbst schreiben. Aber da ich deine Threads aus der Vergangenheit kenne: Das Risiko wäre mir zu groß, dass Dir zu viel Vorkenntnisse fehlen und dann bin ich hinterher der Böse / Unfähige, der so eine einfache Sache (Dir!) nicht erläutern konnte. Danke, aber nein danke ... Wäre auch meine Empfehlung an jeden Anderen im Forum (Ok, evtl. ist einer jung und braucht das Geld ...  )

Und was das Blocken angeht: Ja, wie das funktioniert könnte ich Dir auch erläutern ... Da könntest Du ja einen Thread zu eröffnen, denn hier ist das off topic.


----------



## LimDul (3. Nov 2020)

So in etwa?
[CODE lang="java" title="Methoden"]
    @FXML
    protected void ausschneiden(ActionEvent event) {
        //    Gets the selected Text from the Editor
        String text = editor.getSelectedText();

        // creates a new Clipboard Content
        ClipboardContent inhalt = new ClipboardContent();
        // Puts the selected text in the Clipboard Contents
        inhalt.putString(text);
        // Sets the Contents in the system Clipboard
        systemClipboard.setContent(inhalt);
        // Gets the Selection Rang
        IndexRange umfang = editor.getSelection();

        //  Gets the text from the editor
        String origText = editor.getText();
        // get the first part of the text
        String ersterTeil = StringUtils.substring(origText, 0, umfang.getStart());
        // gets the last part of the text
        String letzterTeil = StringUtils.substring(origText, umfang.getEnd(), StringUtils.length(origText));
        // set the editor text from first and last part.
        editor.setText(ersterTeil + letzterTeil);
        // Set caret Position at the start
        editor.positionCaret(umfang.getStart());

    }
[/CODE]


----------

