Canvas-Klasse : Aufruf von deren Methoden aus anderen Methoden OHNE Grafik-Kontext

wolf_703

Aktives Mitglied
hallo,

ich baue mir zum Spielen einen Loksimulator, Basis sind Fotos aus dem Cabride mit einer modernen E-Lok z.B. BR101 oder BR120
Da gibt es noch einige Rundinstrumente..deren Darstellung natürlich einen Grafik-Kontext z.B. mit CANVAS erfordert.

Das darzustellen war kein Problem, aber den Zeiger will man ja bewegen können !
Die Bewegung soll aufgrund von Einstellung eines Reglers (Slider) erfolgen, das ist bisher in einem JPanel möglich.

Aber wie kann ich jetzt den Zeiger im Canvas-Panel mit einem Funktionsaufruf auf einem NON-Graphics-Panel aufrufen ?

Hier mal n Scrrenshot des Führerstandes..
 

Anhänge

  • Cabride_IC_BR120_1.png
    Cabride_IC_BR120_1.png
    1,6 MB · Aufrufe: 0

Blender3D

Top Contributor
Aber wie kann ich jetzt den Zeiger im Canvas-Panel mit einem Funktionsaufruf auf einem NON-Graphics-Panel aufrufen ?
Indem dein "Canvas-Panel" eine public Medthode z.B.
Java:
void setPositionZeiger( double value  ){ .. }
zur Verfügung stellt. Der "NON-Graphics-Panel" kann dann damit deinen "Canvas-Panel" aufrufen.

Grundsätzlich solltest du jedoch die Daten und die Darstellung trennen. Das bedeutet, die Geschwindigkeit, die Position, das Gewicht ... etc. des Zuges befinden sich in einem eigenen Objekt. Das Objekt das für die Darstellung zuständig ist benutzt dann dieses Objekt entweder direkt oder indirekt für die Generierung des Bildes.
du verwendest SWING für die Darstellung. Wenn du jetzt z.B. dein Programm auch für Andorid oder andere Systeme zur Verfügung stellen möchtest und keine Trennung zwischen Darstellung und Daten in deinem Code gemacht hast wird es schwierig, deinen Code weiter zu benutzen. In Android importierst du andernfalls deine Datenklassen und brauchst dich dann lediglich um die neue Darstellung zu kümmern.
 

wolf_703

Aktives Mitglied
nabend,
erstmal vielen Dank !
ich hab das schon mal so versucht..aber da hat sich nix gerührt--evtl anderer Denk(?)Fehler..

arbeite hier mit IntelliJ community-edition..biete ja schon viel Hilfen !

muß ich da was mit runnable o.ä. machen ?
 

Jw456

Top Contributor
Dann zeige das doch mal wie du das machst. Wenn du es genau wie in deinen Flugsim machst wundert es ich nicht.
Konrad hatte dir das auch an Anfang drauf hin Gewissen.
 

wolf_703

Aktives Mitglied
sorry, weiß nicht , was du da genau meinst..beim Slider z.B. hab ich doch Events wie auch bei den Buttons, checkboxes usw. !?

ich schieb hier mal alle relevanten projektdateien rein..wer lust hat sich da durchzuhangeln ...

heut schnall ich eh nix mehr..guts nächtele
 

Anhänge

  • loksim_komplett.zip
    23,9 KB · Aufrufe: 0

wolf_703

Aktives Mitglied
p.s. : beim flug sim läuft ja viel mehr input über die hardwareschiene resp arduino-übergabe..

events lassen sich bei rail qualifizierter darstellen : signal auf rot,regen,bahnhofshalt..siehe dazu die
mit der zeit weiterschaltende fahrplan-anzeige
so sehe ich beim loksim mehr spielmöglichkeiten - unabhängig davon, ob man Geschwindigkeit, Bremse
und die checkboxes auch vom arduino mittels potentiometer und taster/schalter versorgt..

z.B. hat man beim kick-button die totmann -mimik und bei fehlender scheibenwischer -aktion
würden signale farblos dargestellt, sodaß man mangels eigener aktion
zwangsgebremst wird.. folge : minuspunkte
oder fahrtende=spielende...

irgendwas mit android ist Nicht vorgesehen !
 

wolf_703

Aktives Mitglied
moin,
zu Blender3D :
Java:
zur Verfügung stellt. Der "NON-Graphics-Panel" kann dann damit deinen "Canvas-Panel" aufrufen.
genau dann kriege ich die Meldung, daß der Graphics-Kontext null ist ...und auch wenn ich den Canvas aus einem anderen CANVAS aufrufe,
kommt keine Reaktion des Zeigers !
Blöd ist, daß es keine Mehrfachvererbung bei JAVA gibt :
ich kann also nicht schreiben :
Code:
public class <ebbes> extends JPanel extends CANVAS
d.h. eine nutzbare Kombination aus JPanel und CANVAS gibt es nicht !?

beim Flugsim hab ich ja NUR Graphics-Kontext und keine GUI wie SWING..

evtl könnte man erwägen, z.B. g.rectangle um einen Event-Handler zu ergänzen, also quasi ne SWING-ähnliche GUI
im Graphics-Kontext zu bauen..was ein Aufwand !

Muß mich fragen, ob für meine hobby-orientierte Programmierung von technischen Displays wie Rundinstrumente
nicht ein C-Derivat geeigneter ist..so ganz fremd ist mir C ja nicht, soll heute auch brauchbare GUI-Bibliotheken haben
und Mehrfachvererbung erlauben.

Im professionellen Bezahl-Umfeld gibt es da ja einiges, aber für "arme Rentner" ?
 

Jw456

Top Contributor
Du machst im Großen und Ganzen immer noch den gleichen Fehler wie am Anfang.
Event basierend ist das nicht.

Du versuchst in der Main deine Zeiger mit den grafischen Radius Methoden zu Zeichnen.
Falsch.
Ein zeichnen gehört in die Klasse wo du auch denn Graphik Kontext hast. Nicht in die Main.

In der Main kannst du nach dem du die werte zb für den Druck verändert sind, ein neu Zeichen anstoßen. Du hast es ja sowieso alles
static in der Main.

Event heißt hallo Druckluft du hast neue Werte zeichne dich bitte neu.

PS ich habe deinen Code nur flüchtig angeschaut aber was schon mal für mich auch unsinnig ist in einem Timer in der Run zu warten. Ist doch gegen alles . Das zeigt das du das Prinzip noch nicht verstanden hast.
 

Jw456

Top Contributor
Aber wie kann ich jetzt den Zeiger im Canvas-Panel mit einem Funktionsaufruf auf einem NON-Graphics-Panel aufrufen ?
In dem du ein Neuzeichnen des Grafik Element aufrufst zb mit glaube das war repaint .
Die paint Methode darfst du nicht selber aufrufen. Das ist eine CallBack Methode von Swing.
Der Aufruf hat aber nichts in der Point Methode zu suchen so wie du es in deinen Flugsim falsch machst.

Beim JSlider hast du ja auch setValue(int) zum bewegen Werte/übergeben.


Auch sehe ich hier Probleme da du aus der Paint eine statische Methode aus der Main aufrufst. Dieselbe rufst du ja auch aus den andern Paint Methoden auf. Da wirst du zeitliche Probleme bekommen.

Blöd ist, daß es keine Mehrfachvererbung bei JAVA gibt :
es gibt aber Intefaces
 

wolf_703

Aktives Mitglied
moin,
JW, Du hast wohl recht, daß meine Ansätze u. JAVA-Kenntnisse für eine derart dynamische Anwendung Nicht ausreichen😌

Bisher habe ich vor allem auf der Arbeitsstelle z.B. Grafik nur für eine einfache Messkurvendarstellung benutzt,
wo sich hernach nichts ändert.. alle Aktionen(z.B. Daten von Remote Server aus ORACLE-DB holen) liefen nur über Buttons usw. im SWING-Bereich.
Mit Timer,Runnable,Threads hatte ich nichts zu tun..

Muß da doch mal einige meiner Bücher heranziehen, wo das allgemeingültig erklärt und nicht nur "aufgelistet" wird😒

Nun, es gibt jetzt im Winter noch genug lange Nächte..es ist ja auch ein Winterprojekt😏

Aufi gehts !
 

mihe7

Top Contributor
Hier mal kurz, wie so etwas aussehen könnte. Interessant sind eigentlich nur die Zeilen 58 - 61 (setzen des Werts und anschließendes repaint) und die Verbindung mit dem Slider in Zeile 156 (einfach ein ChangeListener).

Java:
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Arc2D;
import java.awt.geom.Area;
import java.awt.geom.Line2D;
import java.awt.geom.Path2D;

import javax.swing.BorderFactory;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class DialInstrument extends JComponent {
    public static final int DEFAULT_WIDTH = 300;
    public static final int DEFAULT_HEIGHT = 300;

    private Color scaleColor = Color.BLACK;
    private Color pointerColor = Color.RED;
    private Color pointerOutlineColor = Color.WHITE;

    private float tickLineWidth = 1;
    private float dialLineWidth = 5;

    private double value = 0;

    private final Area pointer; 
    private final int angle;
    private final int startAngle;

    public DialInstrument(int angle) {
        this.angle = angle;
        this.startAngle = 90 - angle / 2;

        Shape arrow = new Polygon(new int[]{5, 85, 85, 100, 85, 85, 5, 5}, 
                new int[]{-5, -5, -10, 0, 10, 5, 5, -5},
                8);
        Shape knob =  new Arc2D.Double(-10, -10, 20, 20, 0, 360, Arc2D.CHORD);
        Shape hole = new Arc2D.Double(-5, -5, 10, 10, 0, 360, Arc2D.CHORD);

        this.pointer = new Area(knob);
        pointer.subtract(new Area(hole));
        pointer.add(new Area(arrow));        
        setBackground(Color.WHITE);
    }

    public void setValue(double value) {
        this.value = value;
        repaint();
    }

    @Override
    public Dimension getPreferredSize() {
        if (isPreferredSizeSet()) {
            return super.getPreferredSize();
        }

        Insets insets = getInsets();
        int w = DEFAULT_WIDTH + insets.left + insets.right;
        int h = DEFAULT_HEIGHT + insets.top + insets.bottom;
        
        return new Dimension(w, h);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Insets insets = getInsets();
        Dimension size = getSize();

        Graphics2D g2 = (Graphics2D) g.create(insets.left, insets.top, 
                size.width - insets.left - insets.right, size.height - insets.top - insets.bottom);                
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

        paintDial(g2);
        g2.dispose();
    }

    private void paintDial(Graphics2D g) {
        Rectangle r = g.getClipBounds();

        int radius = (int) Math.floor(Math.min(r.width, r.height) / 2 - dialLineWidth);
        int cx = r.x + r.width / 2;
        int cy = r.y + r.height / 2;

        int x = cx - radius;
        int y = cy - radius;

        if (!isOpaque()) {
            g.setColor(getBackground());
            g.fillArc(x, y, 2*radius, 2*radius, 0, 360);
        }
        g.setColor(scaleColor);
        g.setStroke(new BasicStroke(dialLineWidth));
        g.drawArc(x, y, 2*radius, 2*radius, 0, 360);

        paintTicks(g, cx, cy, radius);
        paintPointer(g, cx, cy, radius, value);
    }

    private void paintTicks(Graphics2D g, int cx, int cy, int radius) {
        g.setColor(scaleColor);
        g.setStroke(new BasicStroke(tickLineWidth)); 

        int innerRadius = (int)(radius * 0.9);
        int circumference = (int)(Math.toRadians(angle) * innerRadius);
        int ticks = Math.min(100, circumference / 10);
        
        for (int i = 0; i < ticks; i++) {
            int areasBetweenTicks = Math.max(ticks - 1, 1);
            double rad = Math.toRadians(startAngle + i * (double) angle / areasBetweenTicks);
            double cos = Math.cos(rad);
            double sin = Math.sin(rad);
            Line2D tick = new Line2D.Double(cx + cos * innerRadius, cy - sin * innerRadius, cx + cos * radius, cy - sin * radius);
            g.draw(tick);
        }
    }

    private void paintPointer(Graphics2D g, int cx, int cy, int radius, double value) {
        double pointerAngle = Math.toRadians(startAngle + angle - value);
        Graphics2D gRot = (Graphics2D) g.create();    
        gRot.translate(cx, cy);
        gRot.rotate(-pointerAngle);
        gRot.scale(radius * 0.8 / 100.0, radius * 0.8 / 100.0);

        gRot.setColor(pointerColor);
        gRot.fill(pointer);
        gRot.setColor(pointerOutlineColor);
        gRot.setStroke(new BasicStroke(1f));
        gRot.draw(pointer);
        gRot.dispose();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {            
            int MAX = 240;
            DialInstrument dial = new DialInstrument(MAX);
            dial.setBackground(Color.DARK_GRAY);
            dial.scaleColor = Color.CYAN;
            dial.pointerColor = Color.RED;
            JSlider slider = new JSlider(JSlider.HORIZONTAL);
            slider.setModel(new DefaultBoundedRangeModel(0, 0, 0, MAX));
            slider.getModel().addChangeListener(e -> dial.setValue(slider.getModel().getValue()));
            dial.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
            slider.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            frame.getContentPane().setBackground(Color.DARK_GRAY);
            frame.add(dial);
            frame.add(slider, BorderLayout.SOUTH);
            frame.pack();
            frame.setVisible(true);
        });
    }
}
 

wolf_703

Aktives Mitglied
n'abend,
vielen Dank für Deine Mühe ! Werd dat Dign mal durcharbeiten über die Festtage, soweit ich zuhause bin.. meld mich
aber auf jeden Fall wieder ! Einstweilen Frohe Festtage !

Nur mal so ne Frage :
Java:
..
..
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
..
..
hat das n bestimmten Grund, warum die Imports so im Detail einzeln aufgeführt sind ?
bei etlichen reicht doch import javax.swing.*; ?

 

KonradN

Super-Moderator
Mitarbeiter
Nur generell der Hinweis: Die großen IDEs sind alle ok und brauchbar: Eclipse, IntelliJ, Netbeans und auch Visual Studio Code.

Das sind aus meiner Sicht die 4 großen Entwicklungsumgebungen, die man sich anschauen kann um zu sehen, ob die einem zusagen oder nicht. IntelliJ hat aus meiner Sicht bei Anfängern den Vorteil, dass hier sehr viel Unterstützung geboten wird, was es speziell für Anfänger gut nutzbar macht. Eclipse ist ein Projekt mehr von Profis für Profis. Da können sich Anfänger leicht mal schwer tun. Aber dafür kann es wirklich alles - angefangen vom Schreiben von Programmen in fast allen Programmiersprachen, die es gibt über die Steuerung der Kaffemaschine oder des ganzen Smart Home bis hin zur Steuerung eines Roboters, der ein Raumschiff baut, das besser ist als alle Raumschiffe aller Science Fiction Geschichten ... (OK, letzteres wohl nicht mehr - das PlugIn wurde wohl von staatlichen Stellen verboten.haha Scherz, war eine klare Übertreibung...). Als Anfänger ist man von Eclipse also oft eher erschlagen...

Visual Studio Code hat aus meiner Sicht den großen Vorteil, dass es derzeit die beste KI Einbindung hat. Das ist ein Punkt, der immer stärker im Kommen ist was ich so sehe. Hier müssen andere Entwicklungsumgebungen noch nachrüsten (was ja auch kommt. JetBrains hat seine eigene KI eingebunden und so - da ist also auch noch recht viel kommen vermute ich ...)

Edit: Das nur als kleiner Hinweis, da ich einen Post gelöscht habe, der aus meiner Sicht wieder eigene Meinung als Regel aufstellen wollte ...
 

KonradN

Super-Moderator
Mitarbeiter
Sorry, aber dieses "IntelliJ ist für Anfänger, Eclipse für Profis" ist ja mal kompletter Schwachsinn, den ich von jemandem mit Erfahrung jetzt nicht erwartet hätte.
Hast Du auch Argumente? Etwas was ohne Begründung als Schwachsinn zu bezeichnen, ist ansonsten wenig überzeugend.

Die Threads zu Eclipse zeichnen ein deutliches Bild. Die Voreinstellungen sind teilweise auch recht deutlich (wie das ignorieren des awt Namensraum bei der Codevervollstündigung.

Eclipse ist und bleibt Anfänger unfreundlich.
 
G

Gelöschtes Mitglied 103022

Gast
Es ging mir mehr darum, dass du es hier so darstellst, als ob Eclipse die IDE für Profis ist, während IntelliJ (nur) für Anfänger ist. Was komplett an der Realität vorbeigeht, und ich eigentlich auch nur von irgendwelchen "meine IDE ist die Beste"-Fanboys kenne, aber nicht von halbwegs erwachsenen Menschen, für die es eher (nur) ein Werkzeug zum Broterwerb ist.
 

KonradN

Super-Moderator
Mitarbeiter
Das war nicht meine Aussage. Ich habe lediglich behauptet, dass
  • IntelliJ deutlich mehr Wert darauf legt, Anfänger/Anwenderfreundlich zu sein. Dies liesse sich durch viele Dinge belegen - auf Wunsch suche da ich Beispiele heraus.
  • Eclipse ist weniger Anfängerfreundlich. Und das liegt aus meiner Sicht tatsächlich daran, dass hier Software Entwickler es für sich erweitern. Da ist das Augenmerk schlicht nicht auf Anfängern.
  • Visual Studio Code hat auch einen wichtigen Punkt - und das ist die KI Einbindung (die bei den anderen Tools nicht ganz so gut ist)

Das waren die drei kleinen Hinweise, die ich gegeben habe - aber die Kernaussage ist und bleibt:
Das sind aus meiner Sicht die 4 großen Entwicklungsumgebungen, die man sich anschauen kann um zu sehen, ob die einem zusagen oder nicht.
Sprich: Einfach ausprobieren und schauen, was man bevorzugt. Das impliziert auch, dass hier nicht wirklich eine falsche Wahl getroffen werden kann. Also ganz das Gegenteil von dem, was Du in dem Post gelesen haben willst.
 

wolf_703

Aktives Mitglied
ok, dankeschön schon mal

nun, daß IntellIJ anfängerfreundlich ist, würde ich unterstützen, zumal da eben auch viele Empfehlungen
zu Problemlösungen automatisch daherkommen.

Programmieren hat mir oft schon Spass gemacht, auch oder auch gerade wenn es nicht immer leicht vonstatten ging.
Wie die Lernkurve aussieht, hängt u.a. eben auch vom Anwendungsspektrum ab.
Einiges hat mir aber bei C++ - was ich in letzter Zeit durch Arduino & Co. wiedergelernt habe - besser gefallen.

Tempus fugit

Man muß halt auch gegenüber Neuem ständig offen sein ! KI ist mir irgendwie noch etwas schleierhaft..:rolleyes:

so, jetzt auch mich mit Gebrüll😄
 

wolf_703

Aktives Mitglied
moin,
alles redet von KI..gibts da wol auch ein forum und vor allem informative Seiten ?

ist hier ja nicht soo das Thema. aber bedeutet das nicht, daß Software eigene Fragestellungen entwickelt
und dann auch löst ?

Meine momentane persönliche Sicht :
Abfragen wie if,switch..case,lambda sind Nicht künstliche Intelligenz, sondern fest programmiert,entspringen also der
Intelligenz des Programmierers und sind somit Nicht künstlich !

Oder liege ich damit "ganz daneben" ?
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Also bezüglich KI kenne ich kein spezifisches Forum, dass dies allgemein als Thema behandelt.

Generell wäre mein Ratschlag, das einfach etwas auszuprobieren. ChatGPT ist wohl auch ohne Abo nutzbar, aber evtl. nicht die aktuellen Modelle oder diese nur eingeschränkt. Aber die meisten KI Anbieter haben auch sowas wie einen kostenlosen Zeitraum zum ausprobieren.

Generell ist es so, dass die KI mit sehr viel Daten "gefüttert" wurde. Und auf diese Daten greift die KI dann zurück um Dinge zu bauen. Das kann dann in der Entwicklungsumgebung dann in Form von Codevorschlägen sein oder dass Dinge generiert werden. So gibt es Ansätze wie: Du schreibst nur einen JavaDoc Kommentar und die KI schreibt dann die Methode. Oder umgekehrt: Du hast eine Methode geschrieben und die KI schaut sie sich an um es zu kommentieren.

Aber es geht da deutlich mehr. Die Anwendungsmöglichkeiten sind sehr hoch. Code geben um diesen dann von der KI prüfen zu lassen oder so. Also Unterstützung bei der Fehlersuche. Erstellung von Unit Tests. All sowas ...

Aber ein paar Tests sind relativ einfach zu machen. So fand ich folgenden Test einmal sehr interessant (Nur eine grobe Zusammenfassung):
  • 1. Anfrage: Ich wollte Java Code, der eine Datenbank Struktur ausliest mit Tabellen, Spalten und deren Typ, Foreign Keys, Indices, ....
  • 1. Antwort: Es wurde Code generiert, der die Metadaten einer Datenbank ausgelesen und einfach ausgegeben hat.
  • 2. Anfrage: Ich wollte, dass Entities erstellt würden und dann Instanzen erzeugt würden statt die Daten nur auszugeben
  • 2. Antwort: Neuer Code, der dann die entsprechenden Entities sowie den Code zum auslesen der Datenbank und der Erstellung der Instanzen enthielt
  • Da gab es dann noch ein paar Refactorings, weil mir paar Dinge nicht gefallen haben
  • Gegen Ende war dann meine Bitte, Unit Tests zu erstellen.
  • Hier habe ich diverse Lösungen bekommen (Ich habe das schon öfters gemacht - auch um Anderen zu zeigen, was alles geht), Interessant fand ich, dass einmal der Unit Test einfach die mysql Datenbank selbst ausgewertet hat (mysql hat ja eine Systemdatenbank mysql). Aber meistens war dann eine Lösung von mehreren SQL Scripten, die eine Datenbank erzeugten und das wurde dann ausgelesen und geprüft.

Das ist übrigens etwas, das ich inzwischen sehr gerne nutze: Ich lasse mir vieles einfach generieren. So hatte ich den Fall, dass ich Datenbanken auslesen musste, die kryptische Namen vferwendet hat. Aber ich hatte SQL Scripte, die die Tabellen erzeugten mit Kommentaren vor jedem Feld.

Das habe ich der KI dann gegeben, um mir Entitäten zu erzeugen, die dann die lesbaren Namen aus den Kommentaren für die Felder nutzt und jeder Spalte noch eine @Column(name="...") Annotation gab. Ich brauchte auch die Möglichkeit, das per JDBC lesen zu können, also gab es noch eine generierte Factory Methode in der Form public static EntityClass readFromResulSet(ResultSet rs, String prefix) welche dann den Builder der Entity nutzte in der Form von Elementen .someColumn(rs.getString(prefix + "theCrypticName"))
Das wäre sehr viel Schreibarbeit für mich gewesen aber dank KI war das in sehr kurzer Zeit fertig.

Die Arbeitsersparnis ist einfach sehr hoch bei so Basic Dingen. Aber man muss alles prüfen, denn die KIs können einem auch den größten Unsinn erzählen. Und teilweise gehen selbst einfache Dinge nicht. Was hatte ich neulich? Generierter Code und ich wollte, dass alle Parameter in den Methoden final gemacht werden. Daran ist die KI komplett gescheitert (ChatGPT mit GPT-4o-with-canvas) ... Aber das kann eine Problematik mit dem Canvas Ansatz gewesen sein, denn das GPT-4o-with-canvas sehe ich nicht mehr als Option.
 

KonradN

Super-Moderator
Mitarbeiter
Und weil evtl. paar Leute da die Aussage vom Foren-Clown gelesen haben: Wir (in der Firma) nutzen vor allem Copilot Enterprise und bei den Plugins gibt es nichts wirklich vernünftiges für IntelliJ (Das Plugin bietet einfach nur einen Bruchteil der Funktionalität). Wir setzen da dann auf VS Code, denn das bietet die beste Integration.

Daher meine Aussage zu VS Code. Ich kann das auch gerne noch mit weiteren Details untermauern. Evtl. hat sich in der Zwischenzeit aber auch etwas mehr getan, ich habe schon ein paar Wochen nicht mehr geschaut.

Natürlich kann man da gerne sachlich diskutieren, aber bitte Texte richtig lesen und versuchen, diese zu verstehen. Irgend ein Müll mit unsinnigen Dingen kann man mir und dem Forum doch bitte ersparen.
 

wolf_703

Aktives Mitglied
in meiner "Datenbankzeit" als externer Mitarbeiter eines Textilproduzenten habe ich auch versucht,
Automaten (sage jetzt absichtlich nicht "KI" dazu) zu bauen, die z.B. aus der DB-Struktur getter-/setter-Code für JavaEnterprise-Anwendungen zu erzeugen.

Leider gibt es aber zwischen den DB-Anbietern und auch noch in deren Versions-Historie gewichtige Unterschiede,
die ein einheltliches Auswerteverfahren behinderten ! Wie geht "KI" damit um ?

Der Begriff "Intelligenz" erzeugt mir eher Unbehagen..wie gehen die DB-Anbieter damit um und sind damit "auf dem Laufenden" ?
 

Marinek

Bekanntes Mitglied
in meiner "Datenbankzeit" als externer Mitarbeiter eines Textilproduzenten habe ich auch versucht,
Automaten (sage jetzt absichtlich nicht "KI" dazu) zu bauen, die z.B. aus der DB-Struktur getter-/setter-Code für JavaEnterprise-Anwendungen zu erzeugen.
Aber ist das nicht für ein gegebenes DB System trivial?

Für die gegebenen ORM Frameworks gibt es meistens eine solche Funktion. Ggf. über Umweg via Liquibase oder Flyway.

Ich habe vor einigen Tagen ein mini Tool geschrieben, das Views von einer DB als Tabellen in eine andere DB exportiert. Das ist auch generisch und transformiert sogar die Datentypen der eine DB in die korespondierenden Datentypen der anderen DB. (Weil von Oracle zu mysql).

KI und DBMS sind ihmo unterschiedliche Dinge. Ein DBMS könnte KI nutzen, um alles mögliche zu machen oder es eben lassen. Wenn ein Kaffeeautomat auch Kuchen zubereitet, weil es Backöfen gibt, würde man auch komisch finden. Was ich damit sagen möchte ist, dass sich die Frage nach :
Leider gibt es aber zwischen den DB-Anbietern und auch noch in deren Versions-Historie gewichtige Unterschiede,
die ein einheltliches Auswerteverfahren behinderten ! Wie geht "KI" damit um ?

nicht 100 % verstehe.

Zum einen würde ich behaupten, dass das auslesen der Schemainformationen sich nicht signifikant innerhalb eines DBMS ändert, dass es hier sinnvoll ist über eine KI das Auslesen zu machen. Wenn sich die API ändert, dann ist das ärgetlich, aber i.d.R. sollte das nicht so oft passieren.

Zum anderen würde die KI die relevanten Informationen nehmen, sortieren und "geschickt" anwenden.

Der Begriff "Intelligenz" erzeugt mir eher Unbehagen..wie gehen die DB-Anbieter damit um und sind damit "auf dem Laufenden" ?

Da kann ich nur empfehlen sich mal anzusehen, wie die KIs arbeiten. Die meisten setzen auf statistische Wahrscheinlichkeiten. Das neue ist, dass die Methode diese Statistik zu berechnen immer besser wurde. Aber irgendwie sind das für mich zwei paar Schuhe. Technologie 1 und 2. Was genau meinst du damit, dass die DBMS Hersteller "auf dem Laufenden" bleiben?
 

KonradN

Super-Moderator
Mitarbeiter
in meiner "Datenbankzeit" als externer Mitarbeiter eines Textilproduzenten habe ich auch versucht,
Automaten (sage jetzt absichtlich nicht "KI" dazu) zu bauen, die z.B. aus der DB-Struktur getter-/setter-Code für JavaEnterprise-Anwendungen zu erzeugen.
Ja, so Code hatten wir damals in unserem .Net Team auch geschrieben. Hintergrund war, dass wir mit den Entity Framework von .Net mehr als unzufrieden waren (wir hatten den DB first Ansatz und da war das EF extrem "zickig"). Das hat aber mit KI nichts zu tun sondern war halt ein einfaches Parsen von SQL und erstellen von C# Code.

Leider gibt es aber zwischen den DB-Anbietern und auch noch in deren Versions-Historie gewichtige Unterschiede,
die ein einheltliches Auswerteverfahren behinderten ! Wie geht "KI" damit um ?
Bezüglich der Datenbank-Analyse ist das der JDBC Layer. Man fragt halt die Metadaten ab und da ist es dann egal, wie das in der Datenbank gespeichert wurde.

Der Begriff "Intelligenz" erzeugt mir eher Unbehagen..wie gehen die DB-Anbieter damit um und sind damit "auf dem Laufenden" ?
Das ist unabhängig von den DB-Anbietern. Die DB-Anbieter bedienen die Schnittstelle, die vorgegeben wurde (hier halt die JDBC Schnittstelle). Das ist schon der ganze Part von denen.

Das, was die "KI Anbieter" machen, ist dann halt das sammeln von vorhandenen Informationen um diese dann in irgend einer Form aufzubewahren und zu verwerten. Das Thema Intelligenz ist hier allerdings relativ komplex und würde schon damit anfangen, dass man den Begriff erst einmal genau definieren müsste: Was bezeichnet man als Intelligenz? Was für Bedingungen müssen erfüllt sein, damit etwas als intelligent bezeichnet werden kann. Das wäre die erste mehr philosophische Frage. Bezüglich Technologie sollte man sich generell erst einmal tiefer mit gewissen Thematiken beschäftigen wie Machine Lerning (ML), Deep Learning (DL) und Natural Language Processing (NLP). Bei der Modellierung kommen dann so Themen rein wie Transformer Architektur und Large Language Models (LLMs). Das wären so die Schlagworte, nach denen man etwas suchen könnte.

Ich hatte da jetzt dann auch mal ChatGPT gefragt, wie man sich in diese Thematik am besten einarbeiten könnte und da kamen dann sogar Buchtipps und so auf sowie eine klare Reihenfolge, wie man sich die Themen erarbeiten könnte angefangen mit Mathematik/Python ... Das einfach einmal als Beispiel für mögliche Antworten von ChatGPT (hier das Model GPT-4o):

Der Einstieg in die Grundlagen von KI und verwandten Themen kann überwältigend wirken, aber mit einem strukturierten Ansatz wird es deutlich einfacher. Hier ist eine empfohlene Schritt-für-Schritt-Anleitung:




1. Solides Fundament schaffen


  • Mathematik:
    • Lineare Algebra: Matrizen, Vektoren, Eigenwerte/-vektoren (z. B. für neuronale Netzwerke).
    • Wahrscheinlichkeit und Statistik: Grundlagen für Modelle und Algorithmen (Bayes, Erwartungswert, Verteilungen).
    • Optimierung: Gradientenabstieg, Konvexität.
  • Ressourcen:
    • Buch: "Mathematics for Machine Learning" (freier Zugriff auf deren Website).
    • Kurs: "Khan Academy" oder Essence of Linear Algebra auf YouTube.
  • Programmierung:
    • Python: Die Standardsprache für KI.
    • Wichtige Bibliotheken:
      • Numpy (für Mathematik und Arrays)
      • Pandas (Datenanalyse)
      • Matplotlib/Seaborn (Visualisierung)
  • Ressourcen:
    • Online-Kurse: CS50's Introduction to Programming with Python (Harvard).
    • Praxis: LeetCode oder HackerRank für Programmierprobleme.



2. Einstieg in Maschinelles Lernen


  • Theorie:
    • Was ist ML? Unterschiede zwischen überwachtem, unüberwachtem und bestärkendem Lernen.
    • Einführung in neuronale Netze und Entscheidungsbäume.
  • Praxis:
    • Python-Bibliotheken: Scikit-learn für klassische ML-Algorithmen.
    • Kaggle: Bearbeitung von Einsteiger-Datensätzen.
  • Empfohlene Kurse:
    • Andrew Ng's Machine Learning Course (Coursera, Stanford).
    • Google's Machine Learning Crash Course (kostenlos).



3. Vertiefung in Deep Learning


  • Grundlagen:
    • Einführung in neuronale Netzwerke: Forward- und Backpropagation.
    • Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs).
  • Frameworks:
    • Erste Schritte mit TensorFlow oder PyTorch.
  • Praxis:
    • Bau eines einfachen Modells: Handschriftenerkennung mit dem MNIST-Datensatz.
    • Online-Plattformen: Colab-Notebooks von Google (keine Installation nötig).
  • Empfohlene Ressourcen:
    • Buch: Deep Learning with Python (François Chollet).
    • Kurs: Deep Learning Specialization (Coursera, Andrew Ng).



4. Einstieg in Natural Language Processing (NLP)


  • Grundlagen:
    • Tokenisierung, Word Embeddings (z. B. Word2Vec, GloVe).
    • Einführung in Transformer-Architekturen.
  • Praxis:
    • Nutzung von Bibliotheken wie Hugging Face Transformers.
    • Arbeiten mit Textdaten (z. B. Sentimentanalyse oder Chatbots).
  • Empfohlene Ressourcen:
    • Kurs: NLP Specialization von Coursera.
    • Blog: Artikel von Hugging Face und Towards Data Science.



5. Daten und Infrastruktur


  • Datenverarbeitung:
    • Einführung in SQL für strukturierte Daten.
    • Tools wie Apache Spark oder Dask kennenlernen.
  • Cloud und Infrastruktur:
    • Grundlegende Kenntnisse in Cloud-Diensten (AWS, GCP oder Azure).
    • Containerisierung mit Docker und Orchestrierung mit Kubernetes.



6. Spezialisierung und Projekte


  • Projekte entwickeln:
    • Start mit kleinen Projekten, z. B.:
      • Vorhersage eines Preistrends (ML).
      • Bilderklassifikation (Deep Learning).
      • Chatbot mit vortrainierten Modellen (NLP).
    • Plattformen: Kaggle-Wettbewerbe oder Open-Source-Projekte (z. B. Hugging Face).
  • Weiterführende Themen:
    • Reinforcement Learning.
    • Optimierung großer Modelle.
    • Arbeiten mit großen Datensätzen (z. B. LAION).



7. Community und Networking


  • Austausch:
    • Teilnahme an Meetups, z. B. über Plattformen wie Meetup.com.
    • Foren: Stack Overflow, Reddit (r/MachineLearning), oder spezifische Discord-Server.
  • Open-Source-Projekte:
    • Beitrag zu bestehenden Projekten auf GitHub.
    • Beispiele: Transformers von Hugging Face, PyTorch Lightning.



Empfohlene Reihenfolge:


  1. Python & Mathe lernen (1-3 Monate).
  2. Maschinelles Lernen (2-3 Monate).
  3. Deep Learning (2-4 Monate, parallel kleinere Projekte).
  4. NLP oder andere Spezialgebiete (nach Interesse vertiefen).



Tipp: Praxisorientiert arbeiten


Theorie ist wichtig, aber du lernst am meisten durch Projekte. Setze dir konkrete Ziele (z. B. "Einen Chatbot bauen"), und suche gezielt nach Wissen, um das Ziel zu erreichen.


Mit Geduld und stetigem Lernen wirst du schrittweise immer mehr Expertise gewinnen. 😊
Was mir jetzt erst nach dem Copy&Paste aufgefallen ist: Da kommt sogar ein Smiley am Ende der Antwort ... Das hatte ich irgendwie bisher auch noch nicht gesehen ....
 

mihe7

Top Contributor
Das, was aktuell im Mainstream als "KI" bezeichnet wird, ist eigentlich nur ein Teilbereich der KI. So hat man (zumindest in der Vergangenheit) einen Schachcomputer durchaus der KI zugeordnet, auch wenn da tatsächlich explizit mit einem Algorithmus nach Lösungen gesucht wird. Im Endeffekt heißt KI einfach nur, dass eine Maschine ein Verhalten zeigt, das sich ähnlich intelligent wie ein Mensch darstellt. Ob ein solches Verhalten, wie im Fall des Schachcomputers, für ein Problem fest in den Code eingebaut wurde, spielt da für mich keine Rolle.

Machine Learning wiederum kann man sich als ein "Programmieren mit Daten" vorstellen. Möchte man z. B. Ziffern in einem Bild erkennen, sagt man dem Rechner eben nicht mit vielen if-Anweisungen, wann es sich um die Ziffer "4" handelt, sondern man jagt eine Vielzahl an Ziffern durch den Trainings-Algorithmus, der dann "lernt", wie z. B. eine "4" aussieht (das wäre jetzt ein Klassifizierungsproblem mit supervised learning).

Sollte KI Unbehagen auslösen? Ja, ich denke schon. Dazu braucht es keine starke KI, davon sind wir auch noch ein wenig entfernt. Aber heute ist es doch schon problemlos möglich, Texte, Bilder, Videos oder Telefonanrufe zu fälschen, die der Gegenüber nicht, nur schwer oder nicht sofort als Fälschung erkennt. Wer weiß, wie viele Bots die Regierungen dieser Welt schon im Einsatz haben, um Wahlergebnisse - auch in anderen Ländern - zu beeinflussen? Und das ist alles andere als eine abwegige Verschwörungstheorie: die FDP hat bereits bei der Wahl 2021 gezielte Wahlwerbung via Facebook eingesetzt. Dafür wurde ein Unternehmen bezahlt, das anhand der Daten der Facebook-User auswertet, wer was gerne hören (bzw. lesen) möchte...
 

wolf_703

Aktives Mitglied
nun ja, in meinem hohen Alter mit ca 40 Jahren Programmiertätigkeit sieht man die Dinge naturgemäß anders..
manchmal ist es leichter , frisch zu lernen als sich umzustellen..aber ich fordere mich auch gerne mal, siehe mein
Posting #31 : Neues lernen wollen..
 

KonradN

Super-Moderator
Mitarbeiter
Ich frage mich tatsächlich, wie langweilig es jemandem sein muss, um ständig neue Accounts zu erstellen, nur um trollen zu können ...

Ok, das mag immer noch besser sein, als sein eigenes Forum zu installieren, nur um sich da dann mit einer KI zu unterhalten.

@KonradsTestuser Nur, damit ich das richtig verstehe, ihr setzt in der Firma echt VSC für die Java-Entwicklung ein? :D Gut, dass Arbeitnehmer die freie Wahl des AGs in deutschland haben. 🤣
Aber für Tobias einfach einmal in einfachen kurzen Sätzen ein paar Fakten:
a) Wenn man Build-Tools wie Maven einsetzt, dann ist die Wahl der Entwicklungsumgebung relativ egal. (Ich habe Java Dateien teilweise schon mit vi bearbeitet ... Wo ist das Problem? Man nutzt halt die Tools, die zur Verfügung stehen.)
b) Ja, man kann mit VSC auch in Java entwickeln. Wo siehst Du da das Problem? Hast Du es evtl. ausprobiert und Du warst zu blöd, die passenden Plugins zu installieren?
c) Nur weil ich VSC und die KI Einbindung hier erwähnt habe: In keiner Weise habe ich das rein auf Java bezogen noch irgendwo behauptet, dass dies womöglich vom AG gefordert wäre ... (Wir sind bei der Wahl der Tools sehr frei. Der AG gibt einem kaum Grenzen. Projekte/Kunden mögen teilweise Dinge vorgeben, aber wie man in ein fachliches Thema dann den AG einbeziehen kann und will?)
 

wolf_703

Aktives Mitglied
moin,
was ist aus meinem Tröt geworden ?
Vorschlag an die Admins : eigenen Tröt für KI ansetzen ?
wünschen schönen 2.Weihnachtstag..mach momentan einen gemütlichen..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Monokuma KeyEvent in der Canvas Klasse AWT, Swing, JavaFX & SWT 0
H JavaFX Canvas neu zeichnen anstoßen AWT, Swing, JavaFX & SWT 34
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
W Clear Canvas und anschließendes neues Erstellen von Objekten auf Canvas aus ArrayList AWT, Swing, JavaFX & SWT 4
W Canvas oder Polygone? AWT, Swing, JavaFX & SWT 3
Monokuma Canvas Form entfernen AWT, Swing, JavaFX & SWT 2
M Internal Frames und Canvas-Element AWT, Swing, JavaFX & SWT 9
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
M Halbkreiszeichnen(Canvas) - Diesen mit Mouseevents bestücken AWT, Swing, JavaFX & SWT 3
dereki2000 AWT Canvas zeichnet nicht AWT, Swing, JavaFX & SWT 7
D Canvas oder scene graph? AWT, Swing, JavaFX & SWT 16
J Canvas wird nicht angezeigt AWT, Swing, JavaFX & SWT 10
Y Objekte grafisch darstellen ohne GMF - Composite auf Canvas? AWT, Swing, JavaFX & SWT 2
Prafy AWT Klickbare Bereiche auf Canvas AWT, Swing, JavaFX & SWT 2
J JavaFX JavaFX Canvas einfaches Zeichenprogramm AWT, Swing, JavaFX & SWT 7
P MalProgramm mit JScrollPane und Canvas AWT, Swing, JavaFX & SWT 2
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
L JavaFX Canvas max size? AWT, Swing, JavaFX & SWT 1
J JavaFX Rendering von Canvas sehr langsam AWT, Swing, JavaFX & SWT 2
P AWT Canvas freihändig zeichnen AWT, Swing, JavaFX & SWT 1
Regedit JavaFX Java Canvas hört ständig auf zu aktualisieren/malen AWT, Swing, JavaFX & SWT 3
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
B JavaFX KeyEvent und Canvas draw Problem AWT, Swing, JavaFX & SWT 9
K Fragen zu JavaFx Canvas AWT, Swing, JavaFX & SWT 0
C Java FX Canvas missing getGraphicContext2D AWT, Swing, JavaFX & SWT 5
windl Overlay mit Transparentem JWindow und Canvas AWT, Swing, JavaFX & SWT 2
S JavaFX Canvas - nur eine Figur auf der Zeichenfläche färben? AWT, Swing, JavaFX & SWT 1
R JComponent auf Canvas AWT, Swing, JavaFX & SWT 8
S Canvas durch transparentes JPanel sichtbar machen AWT, Swing, JavaFX & SWT 2
A JavaFX Menubar wird von Canvas überzeichnet AWT, Swing, JavaFX & SWT 8
antonbracke Multiplayer Shooter- Wie geht das mit Canvas & Graphics AWT, Swing, JavaFX & SWT 6
Luk10 KeyBindings mit Canvas? AWT, Swing, JavaFX & SWT 3
B LookAndFeel GWT: Canvas in TabSet nicht sichtbar AWT, Swing, JavaFX & SWT 2
K canvas zeig nach repaint nichts an AWT, Swing, JavaFX & SWT 8
T Canvas clipping AWT, Swing, JavaFX & SWT 4
S 2 Canvas übereinander AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Canvas Problem(Größe) AWT, Swing, JavaFX & SWT 6
K 3D-Grafik Canvas ist ein eigener Frame?! AWT, Swing, JavaFX & SWT 13
F Canvas Objekt außerhalb des Frames zeichnen AWT, Swing, JavaFX & SWT 3
M Wofür Canvas? AWT, Swing, JavaFX & SWT 5
frankred Swing Canvas nach "Window-resize" neu Zeichnen lassen wegen Anzeigefehler AWT, Swing, JavaFX & SWT 4
S Canvas in ScrollPane wird beim scrollen immer neu gezeichnet AWT, Swing, JavaFX & SWT 3
F Nur ein Objekt auf Canvas neu zeichnen AWT, Swing, JavaFX & SWT 4
B AWT Canvas überdeckt nach repaint() JComboBox-Optionen AWT, Swing, JavaFX & SWT 2
lumo SWT Canvas transparent AWT, Swing, JavaFX & SWT 4
2 AWT Zeichnen in Canvas AWT, Swing, JavaFX & SWT 5
B 2D-Grafik Malen/übermalen mit Canvas AWT, Swing, JavaFX & SWT 5
L Dynamisch Objekte in Canvas zeichnen AWT, Swing, JavaFX & SWT 5
G Auf Canvas zeichnen nur über boolean-Abfragen? AWT, Swing, JavaFX & SWT 5
S Canvas-Inhalt in Laufzeit ändern AWT, Swing, JavaFX & SWT 6
R In JFrame oder in Canvas mit grafischen Elemente zeichnen AWT, Swing, JavaFX & SWT 2
I Canvas Repaint Probleme AWT, Swing, JavaFX & SWT 2
S Bild wird auf Canvas in Applet nicht gezeichnet AWT, Swing, JavaFX & SWT 4
G SWT Linie unter transparentes Canvas zeichnen AWT, Swing, JavaFX & SWT 4
F Swing Paint mit Canvas Element AWT, Swing, JavaFX & SWT 35
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
T AWT canvas AWT, Swing, JavaFX & SWT 3
P Canvas: String wird nicht gezeichnet AWT, Swing, JavaFX & SWT 5
T SWT Canvas Koordinaten per MouseMove auslesen AWT, Swing, JavaFX & SWT 1
H Zeichnen auf smartgwt Canvas AWT, Swing, JavaFX & SWT 4
G Drag and Drop JTree to Canvas AWT, Swing, JavaFX & SWT 7
K Swing Sinuskurve zeichnen auf Canvas AWT, Swing, JavaFX & SWT 2
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
J Canvas / paint() AWT, Swing, JavaFX & SWT 2
D Canvas soll angezeigtes jpg-Bild aktualisieren AWT, Swing, JavaFX & SWT 4
N zeichnen auf awt canvas AWT, Swing, JavaFX & SWT 9
G Ein Wort in einem String färben in einer Canvas AWT, Swing, JavaFX & SWT 10
J Canvas Inhalt als Bild speichern! AWT, Swing, JavaFX & SWT 16
T zeichnen mit canvas AWT, Swing, JavaFX & SWT 3
S repaint im Canvas AWT, Swing, JavaFX & SWT 3
D Canvas und Buttons AWT, Swing, JavaFX & SWT 20
P Zeichnen in Canvas und Neuzeichnen AWT, Swing, JavaFX & SWT 3
G Canvas + Swing-Objekte AWT, Swing, JavaFX & SWT 5
C canvas.draw zeichne ohne ausfüllen AWT, Swing, JavaFX & SWT 9
P Canvas in JFrame mit GridLayout AWT, Swing, JavaFX & SWT 4
B Graphics und Canvas - Problem AWT, Swing, JavaFX & SWT 2
T Canvas gegen Container austauschen --> GUI fehlt AWT, Swing, JavaFX & SWT 4
P Canvas Inhalt löschen AWT, Swing, JavaFX & SWT 4
D Canvas über JMenuBar AWT, Swing, JavaFX & SWT 7
F ToolTip auf Canvas AWT, Swing, JavaFX & SWT 2
L Probleme mit mehreren Canvas: Überlagerungseffekte? AWT, Swing, JavaFX & SWT 5
N Zu hoher Speicherverbrauch beim Zeichnen (Canvas) AWT, Swing, JavaFX & SWT 5
G Canvas im JPanel - "Freie" Fläche Problem AWT, Swing, JavaFX & SWT 10
T Textfeldwert in canvas AWT, Swing, JavaFX & SWT 4
D cannot access Canvas AWT, Swing, JavaFX & SWT 13
G Canvas in SWT aktualisieren AWT, Swing, JavaFX & SWT 21
S AUF Canvas Zeichnen Fehler! AWT, Swing, JavaFX & SWT 10
G Canvas löschen AWT, Swing, JavaFX & SWT 15
H Sowas wie ein Canvas AWT, Swing, JavaFX & SWT 3
D Inhalt einer Canvas löschen (SWT.NO_BACKGROUND gesetzt) AWT, Swing, JavaFX & SWT 3
G GridBagLayout mit Canvas-Positionsproblem AWT, Swing, JavaFX & SWT 5
J Canvas und JTextField AWT, Swing, JavaFX & SWT 2
T erkennen ob innerhalb oder außerhalb von canvas gezeichnet AWT, Swing, JavaFX & SWT 2
S Problemen mit Canvas-Objekten im GridLayout AWT, Swing, JavaFX & SWT 8
P Tranparentes Canvas AWT, Swing, JavaFX & SWT 8
P Inhalt eines Canvas verkleinern AWT, Swing, JavaFX & SWT 3
G Canvas, JMenu, und BufferStrategy AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben