IDEA IntelliJ AI Assistant

Ernesto95

Aktives Mitglied
Moin zusammen,

habt ihr hier schon Erfahrung mit dem AI Assistant gemacht ? Ich habe mich mal wieder an ein Projekt gesetzt und wieder ausgiebig Dr.Google für triviale Dinge befragt, da mein letztes Projekt schon wieder etwas her ist und demnach meine Kenntnisse etwas eingeschlafen sind. Dann bin ich auf den neuen AI Assistant in IntelliJ gestoßen und da ich ein neugieriger Mensch bin hab ich direkt mal ein Monatsabo gebucht (kostet 12 EUR pro Monat oder 120 EUR bei jährlicher Zahlung).

Und was soll ich sagen, ich bin restlos begeistert. Ergebnisse kommen direkt auf den Punkt, kein endloses scrollen in Google Treffern ... hatte bisher nur ein bisschen mit AI erstellten Bildern gespielt, das hat mich schon fasziniert, war aber für mich nur Spielerei und nicht produktiv einsetzbar, aber der AI Assistant von IntelleJ ist genial :cool:

Mal ein einfaches Beispiel, und ja, er versteht auch deutsch ...

Meine Frage: Wie setze ich ein Hintergrundbild in einer JavaFX Pane per CSS

Antwort:

In JavaFX, Hintergrundbilder für eine Pane oder eine StackPane können auch mithilfe von CSS gesetzt werden. Hier ist ein Beispiel, wie das gemacht werden kann:

Java:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {

        StackPane stackPane = new StackPane();
        Scene scene = new Scene(stackPane, 300, 200);

        // Der Pfad ist relativ zum Klassenpfad
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        
        // Die CSS-ID wird hier verwendet
        stackPane.setId("myPane");

        primaryStage.setTitle("JavaFX Pane Hintergrundbild Beispiel");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

In Ihrer CSS-Datei (hier application.css genannt) setzen Sie das Hintergrundbild wie folgt:

Java:
#myPane {
    -fx-background-image: url('background.jpg');
    -fx-background-size: cover;
}

In diesem Beispiel identifiziert #myPane die StackPane durch ihre ID. Der CSS-Stil -fx-background-image: url('background.jpg'); setzt das Hintergrundbild. Der Stil -fx-background-size: cover; ändert die Skalierung des Hintergrundbilds so, dass es den gesamten Platz einnimmt, wobei das Seitenverhältnis beibehalten wird.
Vergewissern Sie sich, dass die background.jpg Datei im korrekten Verzeichnis liegt. In diesem Fall sollte sie im selben Verzeichnis wie die application.css Datei liegen. Passen Sie den Pfad entsprechend an, wenn sich Ihr Bild an anderer Stelle befindet.
 

Oneixee5

Top Contributor
Kann ich nachvollziehen, die Firma hat geschludert und alle Accounts auslaufen lassen. Was soll ich sagen - die Ergänzung von Javadoc und Tests hängt immer weiter hinterher. Wenn man erst mal mit damit gearbeitet hat, dann hat man keine Lust mehr, auf die stino Tipparbeit. Ich denke irgendwann diese Woche wird das wieder funktionieren ...
Zum Programmieren nehme ich sonst die KI eher nicht, man muss dann zu viel nacharbeiten. Da bin ich ohne schneller.
 

Ernesto95

Aktives Mitglied
Was das komplette erstellen von Klassen oder Methoden angeht, da bin ich auch eher skeptisch, aber dieser AI Assistant ist fürs schnelle Nachschlagen von irgendwelchen Problemen definitiv das bessere Google.

Verstehe ich dich richtig das du die Javadoc damit erstellt hast ? Darf ich fragen wie ?
 

Oneixee5

Top Contributor
Wir nutzen Github Copilot, einfach über Code Lens oder /doc eintippen, dann werden verschieden Vorschläge gemacht und man kann einen auswählen. Man kann auch Javadoc schreiben und daraus eine Klasse oder Methode erstellen lassen. Oder auch chatten und dann schreibt man sowas wie: generiere jetzt den Code dazu
Man kann auch einfach anfangen zu tippen und es erscheint dazu Code den man so schreiben würde, mit Tab kann man den Vorschlag übernehmen. Also z.B. sowas wie: public String readTextFromFile... und es erscheint eine komplette Methode die eine Datei ausliest und einen String davon zurückgibt. Die Gefahr ist, dass man viel Code doppelt, weil es schnell geht. Man kommt dann schnell vom Konzept ab und verzettelt sich mit den Möglichkeiten. Selber denken ist besser.
Ich finde aber die Möglichkeit Tests zu generieren viel besser. Copilot lernt am Anfang so ein wenig, was man für Tests will, z.B. Integrations-Tests oder Unit-Test oder JUnit5 usw, ja nach Ordner usw. Dann kommen dabei ziemlich gute Tests raus, die man schnell ergänzen kann. Da ist die meiste Arbeit. Man weiß dann ziemlich schnell was man tippen muss damit herauskommt was man will.
Google und Stackoverflow sind trotzdem noch wichtige Quellen und dran bleiben und lernen ist natürlich auch wichtig. Eine KI verfügt immer nur über Wissen von gestern. KI ist 'nur' Statistik und kann kein eigenes/neues Wissen generieren.
Was der IntelliJ AI Assistant kann, kann ich nicht beurteilen. Wir machen immer so einmal im Jahr einen neuen Versuch mit IntelliJ. Bis jetzt wurde der Einsatz aber immer wieder verworfen.
 

KonradN

Super-Moderator
Mitarbeiter
AI Assistant / Copilot
Also ich habe mir den AI Assistant auch angesehen. Das ist aber halt auf JetBrains IDEs beschränkt (was aber ok sein kann) und der Preis ist recht gut. Daher ist es auf jeden Fall keine schlechte Wahl, wenn man darauf setzt zumal die Integration deutlich besser ist als bei anderen Plugins (meine ich).

Ich selbst setze aber in der IDE auf Github Copilot, das ein kleines bisschen teurer im Monat ist aber dafür auch in Visual Studio und so zur Verfügung steht. Und ich habe direkt bei OpenAI eine Subscription und nutze für die meisten Anfragen direkt ChatGPT. Mit den zusätzlichen GPTs ist das auch recht genial geworden, d.h. ich muss nicht mehr extra zu DALL-E wechseln oder so.

Hier bin ich übrigens auch am Überlegen, von Copilot auf AI Assistant zu wechseln, da ich relativ wenig mit Visual Studio mache und ich in erster Linie in JetBrains IDEs unterwegs bin.

Code Generierung mit ChatGPT / Mein Einsatz von ChatGPT
Code Generierung mit ChatGPT funktioniert sehr gut. Ich habe da mal diverse Tests gemacht wie
  • Einfach Mal Code generieren lassen, der die Metadaten einer Datenbank ausliest. Das ging über mehrere Schritte, da er erst nur Code geschrieben hat, der Felder der Tabellen, Foreign Keys und so ausgegeben hat. Aber da wurden dann auf Anfrage auch Entities generiert, der Code dafür angepasst, Unit Tests geschrieben, ...
  • Für paar Klassen habe ich testweise einfach mal Unit Tests generieren lassen (unabhängig vom oberen Punkt) Aber das kann auch komplett schief gehen. ChatGPT erfindet gerne auch Dinge :)

Ansonsten ist ChatGPT meine Google Alternative geworden. Unter AIX finde ich die man Pages immer relativ blöd zu lesen. Früher habe ich dann nach der man page im Browser gesucht um da besser in der Seite suchen zu können und auch die Schriftgröße war da besser einstellbar und so ... Heutzutage quäle ich mich nicht durch die man Page sondern frage ChatGPT. Dann habe ich eine deutlich kompaktere Antwort, die eben genau das enthält, was ich brauche. (Und das kann auch paar komplexere Dinge mit sich bringen. Was mir da gerade einfällt, was ich Ende letzten Jahres hatte: Tracen von IP Traffic und dann Auswerten des Trace Files.

Generell ist es nach meiner Erfahrung so, dass die Antworten besser sind, je mehr das im Netz schon behandelt wurde. Ich habe sehr schlechte Erfahrungen gesammelt mit Informix Abfragen. Da habe ich so oft Dinge bekommen, die in Informix nicht vorhanden waren. Oder die Version von Informix wurde nicht bedacht. Das war dann schon sehr nervig. Informix ist halt mehr ein Nischenprodukt denke ich mal. MySQL Postgres, Oracle, MS Server - die haben deutlich mehr Verbreitung denke ich mal.

Aktuelles "Wissen"
Eine KI verfügt immer nur über Wissen von gestern
Das ist bei aktuellem ChatGPT nicht so. Er durchsucht (Bei Bedarf) das Internet, wertet dann die Treffer aus und antwortet dann. Am Ende gibt es dann auch noch Links zu Details. Dazu einfach einmal eine nicht IT basierte Suche mit ChatGPT, die so eine typische Antwort zeigt:

Beim Verputzen von Gefachen mit Weißkalkhydrat und Sand gibt es einige wichtige Punkte zu beachten. Eine häufig genannte Mischung besteht aus Weißkalkhydrat und Sand im Verhältnis 1:3 bis 1:4. Es wird auch erwähnt, dass für die erste Schicht manchmal eine kleine Menge Zement beigemischt wird, um eine bessere Haftung zu gewährleisten, insbesondere bei unebenen Untergründen oder bei stärkeren Putzstärken. In solchen Fällen wird vorgeschlagen, die ersten 10-15 mm mit einer Mischung aus Zement anzusetzen und dann für den restlichen Putz reines Kalkhydrat zu verwenden.

Die genaue Mischung kann je nach Art des verwendeten Sandes variieren. Es wird empfohlen, mit einer Grundmischung zu beginnen und dann das Verhältnis basierend auf der Konsistenz und den Anforderungen des jeweiligen Projekts anzupassen. Gewaschener Sand wird oft bevorzugt, da er weniger Verunreinigungen enthält, aber es gibt auch Hinweise darauf, dass ungewaschener Sand aufgrund seiner Feinanteile gut funktionieren kann, da er eine "fettere" Konsistenz hat und besser zusammenklebt.

Beim Anrühren und Auftragen des Kalkputzes ist Sorgfalt geboten. Ein zu schnelles Trocknen sollte vermieden werden, um eine gute Haftung und Festigkeit des Putzes zu gewährleisten. Es ist wichtig, den Putz während der Trocknungsphase ausreichend feucht zu halten und direkte Sonneneinstrahlung oder Zugluft zu vermeiden.

Zusammenfassend ist es entscheidend, dass man experimentiert und die Mischung an die spezifischen Bedingungen und Materialien des jeweiligen Projekts anpasst. Die Erfahrungen anderer zeigen, dass manchmal Anpassungen nötig sind, um optimale Ergebnisse zu erzielen【7†source】【8†source】【9†source】【10†source】【11†source】【12†source】.
Die Funktion, eine Antwort in die Zwischenablage zu kopieren, ist evtl. nicht ganz so gut, wie gedacht. Der erste Satz fehlte:
Basierend auf einer schnellen Suche, hier ist, was ich gefunden habe.
Und meine Anfrage war:
Gibt es Erfahrungswerte zum Verputzen von Gefachen mit Wießkalkhydrat und Sand bezüglich Mischungsverhältnis und dem zumischen von Zement?

Aber ich gebe Dir natürlich Recht: Die KI kann nur Dinge, die gefunden wurden, wieder geben. Da ist keine wirkliche Kreativität. Da wird nicht ein Problem als solches analysiert und dann Code entwickelt. Das sind auch schon Erfahrungen, die ich gemacht habe: ChatGPT antwortet immer. Und wenn es nichts weiss, dann erfindet es etwas .... (In der API ist es etwas einstellbar, aber im Web Frontend ist das schon heftig!)

Edit: Der Preis von AI Assistant und Github Copilot ist (fast) gleich ... Den Preis scheine ich also falsch in Erinnerung gehabt zu haben.
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Verstehe ich dich richtig das du die Javadoc damit erstellt hast ? Darf ich fragen wie ?
Generate documentation with AI | IntelliJ IDEA Documentation (jetbrains.com)

Das funktioniert mit über die Alt - Enter Tastenkombination. In meinen 7 Tagen Tests war das relativ brauchbar fand ich. Aber glaub nicht, dass man das so stehen lassen kann ohne Nacharbeiten. Aber man hat einen Ansatz, der teilweise passt und oft nur leicht anzupassen ist. Aber ich hatte da teilweise auch massiven Murks :)

Edit: Noch zwei Ergänzungen:
a) Wenn man mit dem aktivierten AI Assistant einen JavaDoc Kommentar schreibt, dann kommt da auch ein Link hinzu, mit dem man dann die Dokumentation generieren kann:
Bildschirmfoto 2024-01-16 um 19.43.58.png
Da kann man also mit der Maus auf Generate with AI Assistant klicken und er generiert dann den Kommentar
b) Mit dem Alt Enter ist es etwas blöd finde ich. Da muss man dann erst AI Actions öffnen und da findet man dann im Menü auch die Generierung der Dokumentation. Dazu kann man dann aber auch noch einen individuellen Hotkey erzeugen (Alt Enter, dann einfach mit den Pfeiltasten auf AI Actions... und Pfeil rechts drücken -> Assign Shortcurt) Dann hat man es auch direkt auf einem Shortcut seiner Wahl. Man merkt, dass ich ungerne zwischen Tastatur und Maus wechsel :)
 
Zuletzt bearbeitet:

Ernesto95

Aktives Mitglied
Generate documentation with AI | IntelliJ IDEA Documentation (jetbrains.com)

Das funktioniert mit über die Alt - Enter Tastenkombination. In meinen 7 Tagen Tests war das relativ brauchbar fand ich. Aber glaub nicht, dass man das so stehen lassen kann ohne Nacharbeiten. Aber man hat einen Ansatz, der teilweise passt und oft nur leicht anzupassen ist. Aber ich hatte da teilweise auch massiven Murks :)

Edit: Noch zwei Ergänzungen:
a) Wenn man mit dem aktivierten AI Assistant einen JavaDoc Kommentar schreibt, dann kommt da auch ein Link hinzu, mit dem man dann die Dokumentation generieren kann:
Anhang anzeigen 22030
Da kann man also mit der Maus auf Generate with AI Assistant klicken und er generiert dann den Kommentar
b) Mit dem Alt Enter ist es etwas blöd finde ich. Da muss man dann erst AI Actions öffnen und da findet man dann im Menü auch die Generierung der Dokumentation. Dazu kann man dann aber auch noch einen individuellen Hotkey erzeugen (Alt Enter, dann einfach mit den Pfeiltasten auf AI Actions... und Pfeil rechts drücken -> Assign Shortcurt) Dann hat man es auch direkt auf einem Shortcut seiner Wahl. Man merkt, dass ich ungerne zwischen Tastatur und Maus wechsel :)

Manchmal frage ich mich ob du deine Antworten mit chatGPT erstellst. Weil Posting von dir mit weniger als 5 Sätzen gibt es wohl hier im Forum kaum :) Aber dann liest man mal genauer drüber und (noch) kann man erkennen das da ein Mensch hintersteckt ;-)

Danke für den Tip, bei Ergänzung a diesen kleinen Link zum AI Assistant hatte ich bis dato komplett übersehen. Habe aber soeben noch eine andere Möglichkeit gefunden für alle Methoden einer Klasse auf einmal das Javadoc zu erstellen. ALT+ENTER -> AI Action -> Generate Code und im Fenster das sich dann öffnet einfach "Javadoc" eingeben. Dann rödelt er ein bisschen und erstellt die komplette Javadoc zu der Klasse die man dann ggf. noch anpassen muss.

Leider hält sich der AI Assistant aber (noch) nicht an die Javadoc Template Vorlagen, so das er z.B. den @author Tag nirgends einfügt.

Aber wie auch immer, das ganze ist extremst interessant und ich bin gespannt wohin uns der Weg AI führt.
 

KonradN

Super-Moderator
Mitarbeiter
Manchmal frage ich mich ob du deine Antworten mit chatGPT erstellst.
Nein, meine Texte schreibe ich immer selbst. Das erkennt man auch oft genug an Fehlern in Grammatik und Rechtschreibung :)

Und ich nehme mir oft einfach zu wenig Zeit, was Du dann an Edits erkennst. Ich schreibe eine Antwort und dann fallen mir weitere Aspekte ein. Oder so wie hier probiere ich es erst nach der Antwort einmal aus und bekomme es dann im Detail mit. Da muss ich an mir arbeiten.

Leider hält sich der AI Assistant aber (noch) nicht an die Javadoc Template Vorlagen, so das er z.B. den @author Tag nirgends einfügt.
Das ist natürlich ärgerlich. Bei ChatGPT kann man (zumindest wenn man die Pro Subscription hat) einiges Vorgeben. So habe ich da einige Informationen hinterlegt wie z.B. dass ich an Java interessiert bin und so.

Das habe ich aber für AI Assistant nicht gefunden. Aber da kann man eigene Prompts erstellen. Da habe ich mal einfach einen neuen Prompt hinzugefügt - der arbeitet tatsächlich mit der Klasse und generiert die JavaDoc incl. dem angeforderten @author aber die Antwort landet nur im Chat und nicht im Editor selbst. Das war aber auch erst ein erster Versuch und evtl. geht es ja doch auch irgendwie besser. Das nur einmal als Idee.

Mein letzter Versuch war:
Write JavaDoc for all classes, fields and members even including private elements and add an @author with Konrad Neitzel on the outer class. Code to work on: $SELECTTION

Das ist evtl. ein Ansatz um damit selbst etwas zu spielen :)
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben