• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Java FX Window Event SHOWING

izoards

izoards

Aktives Mitglied
Hallo,

Ich versuche gerade folgendes Problem zu lösen. Ich möchte, ein Event auslösen (Check TCP Connection), sobald die Stage angezeigt wird.
Ich habe daher den Window Event WINDOW.SHOWING gefunden und möchte diesen nun implementieren.
WindowEvent (JavaFX 8) (oracle.com)

Leider funktioniert dies nicht, so wie ich es mir vorstelle.

Und zwar habe ich den event handler beim erstellen der Stage hinzugefügt:

Java:
public void createMainWindow() {
        try {
            FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fxml"));
            AnchorPane pane = loader.load();


            primaryStage.setMinHeight(400);
            primaryStage.setMinWidth(500);

            MainWindowController mainWindowController = loader.getController();
            mainWindowController.setMain(this);

            Scene scene = new Scene(pane);

            primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("Icon.jpg")));
            primaryStage.setTitle("WinFTM XML Handler");


            primaryStage.addEventHandler(WindowEvent.WINDOW_SHOWN, new EventHandler<WindowEvent>()
            {
                @Override
                public void handle(WindowEvent window)
                {
                    mainWindowController.handleWindowShowingEvent();
                }
            });
            


            primaryStage.setScene(scene);
            primaryStage.setResizable(false);
            primaryStage.show();


        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


Im Controller wird dann bis jetzt einfach einen Text ausgegeben:

Java:
    public void handleWindowShowingEvent() {

        System.out.println("hello Window Event");

    }


Beim ersten mal erstellen der Stage funktionierts.

Danach wenn ich das Fenster minimiere und wieder maximiere, passiert nichts mehr.

Ist das der Falsche Event? Was kann ich machen, damit eine Methode ausgeführt wird, sobald der "Fokus" auf die Stage gerichtet wird?

Vielen Dank für eure Hilfe....
 
kneitzel

kneitzel

Top Contributor
Also ein Minimieren ist kein Verstecken!

Wenn es Dir um den Fokus geht, dann ist die entsprechende Property nützlich:
primaryStage.focusedProperty().addListener(e -> System.out.println("focusedProperty: " + primaryStage.isFocused()))

Das einfach einmal als eine Option. Es gibt auch noch andere Properties, die man nutzen könnte. iconified wäre dieses Minimieren.
 
izoards

izoards

Aktives Mitglied
hmm, aber es ist nicht die gute Lösung, da meine stage abstürzt, wenn ich sie im falschen Moment öffne, da noch ein Hintergrund Task läuft, welcher ebenfalls über denselben TCP Client kommuniziert.

Was wäre die beste Idee, Ich möchte einen aktuellen Status auf der Stage angezeigt haben, ob die TCP Verbindung noch steht, oder nicht.
Dafür, muss ich ja ein Befehl senden und schauen, ob der server noch antwortet.

Im Hintergrund Task habe ich nur event watcher für Ordner...
Müsste ich am besten im Hintergrund task ein abfragen der Verbindung einbauen? Falls ja, wie würde so etwas aussehen.
Also z.B. alle sekunden nachfragen, ob noch eine Verbindung besteht?
 
izoards

izoards

Aktives Mitglied
Würde das gehen, wenn ich in meinem Service Task (Hintergrund Task) einen neuen Thread starte, welcher nach einer gewissen Zeit, die TCP Kommunikation prüft, und den Status an mein Controller übergeben würde?

Oder gibt das Probleme mit einem Thread im Task? Bzw. wie könnte ich meine Anforderung lösen.....
 
kneitzel

kneitzel

Top Contributor
Also generell ist es immer gut, sein Model von der UI getrennt zu halten. Und zu dem Model gehört bei Dir auch die Verbindung. Und da solltest Du sauber sein. Dein Model sollte seinen Status natürlich sauber kennen und die UI würde den vorhandenen Status dann nur anzeigen. Oder würde da gewisse Dinge triggern.

Generell kann Dein Model auch Threads erstellen so dies notwendig ist. Aber das Model muss unabhängig von der UI die Funktionalität bereit stellen, die Du in der UI brauchst und das idealer Weise auch entsprechend durch Tests gut ausgetestet.
 
izoards

izoards

Aktives Mitglied
Besten Dank für die Antwort.

Ich kann leider auch kein Thread im Task starten, welcher regelmässig prüft ob die Verbindung noch steht, da der Task, welcher unabhängig im Hintergrund läuft, ebenfalls die Kommunikation benötigt. Wenn der Task also gerade kommuniziert und der Thread währenddem die Verbindung prüfen will, bin ich wieder gleich weit, wie beim 1. Versuch, wo ich die Verbindung beim maximieren des Fensters prüfen wollte....

Hmm, vermutlich müssste ich dann einen zweiten Task auslösen über die concurrency klasse...
Wäre das das richtige Vorgehen?
 
izoards

izoards

Aktives Mitglied
Also meine Idee ist nun ein zweiter concurrent Service zu starten, welcher jedoch nur alle sekunden abläuft.
kann man den so schlafen legen?
 
kneitzel

kneitzel

Top Contributor
Also ich blicke nicht durch, was Du da überhaupt genau versuchst. Eine TCP/IP Connection ist eigentlich nichts wildes. Daher vermute ich einfach einmal, dass Du da gerade einiges baust, das so garantiert nicht notwendig ist.

Wenn Du da Unterstützung willst, dann zeig den Part doch einmal genau - dann kann man dazu vielleicht etwas näheres sagen....
 
izoards

izoards

Aktives Mitglied
Da ich im Background Task nur kurz über TCP/IP kommuniziere. Kann es vorkommen, dass der Hintergrundtask am laufen ist, der Empfänger der TCP Verbindung jedoch nicht mehr "da" ist.
Also der Hintergrund Task wartet auf ein file in einem Ordner und beginnt dann zu arbeiten und die TCP kommunikation läuft dann auch kurz.
Hier kann ich es gut abfangen, ob die Verbindung noch steht oder nicht.

Jedoch möchte ich den Status der Verbindung auch im "Wartezustand" wissen und im UI anzeigen lassen.
 
izoards

izoards

Aktives Mitglied
Ich bin jetzt folgendes am probieren:

zwei Hintergrund Tasks:
Task 1: Wie gehabt, "Ordner Watcher"
Task 2: Kommuniziert alle 3 sec. mit dem Server...

Code Blöcke wo die TCP/IP Kommunikation passiert markiere ich als Synchronized.
Soweit ich das bis jetzt getestet habe und beeurteilen kann scheint das mal zu funktionieren.

Jedoch wird beim starten, im Task1 die Verbindung aufgebaut (In einer while Schleife)

Task 2: will dann bereits prüfen, ob die Kommunikation steht und es gibt ein Nullpointer Exception.

Nun fange ich die Nullpointer Exception einfach ab, da diese nur kommt, solange noch nie eine Verbindung aufgebaut wurde.

Ist vermutlich bisschen wild....?
 
kneitzel

kneitzel

Top Contributor
Klingt weiterhin dubios. Zeige doch einmal konkret, was Du genau machst!

Also wenn Du eine TCP/IP Verbindung hast: Da wirst Du entweder einen Socket oder einen SocketChannel haben, je nachdem ob du den alten io oder den neuen nio namespace nutzen willst. Letzterer hat den Vorteil, dass der sehr schön non blocking IO unterstützt.

Aber auch mit Socket ist es relativ einfach auf Clientseite. Da hast Du ja nur eine Verbindung und 2 Threads pro Verbindung sind da unkritisch.

Nehmen wir den alten Fall mit Socket und blocking IO:
- Du hast einen Thread, der nichts anderes macht, als vom Socket zu lesen. Wenn da nichts ist, dann blockiert es, d.h. der Thread steht. Also wenn Du z.B. nur Text sendest und zwei Nachrichten per Newline getrennt sind, kannst du den OutputStream entsprechend zeilenweise lesen ...
- Wenn Du den Status haben willst oder so, dann schaust Du beim Socket. Ggf. kommen noch paar zusätzliche Dinge hinzu, aber in erster Linie ist es der Socket...
- Wenn Du etwas schreiben willst, dann kannst Du direkt über den Socket schreiben. Das blockiert aber wieder. Das mag ok sein. Wenn es nicht ok ist (z.B. Filetransfer ...), dann wäre dies ein zweiter Thread. Du hast dann einen Puffer mit Daten, die Du senden sollst (Typische Queue) und die sendest Du einfach. Der Thread nimmt also immer ein Element aus der Queue und sendet es. Wenn es kein Element in der Queue gibt, dann legt er sich schlafen.
Die Queue muss thread sicher sein. Wenn Du etwas in die Queue packst und die Queue war leer, dann weckst Du den schlafenden sende thread ...

Das ist eigentlich schon alles.

Das kannst Du schön in einer Klasse verpacken. Nach außen gibt es dann nicht viel:
- Du hast eine connect methode (ggf. ist das auch im Constructor?)
- Du setzt einen Consumer für Nachrichten.
- Du hast eine Methode zum senden von Nachrichten.
- Ggf. kannst Du den Status überprüfen. Das ist optional. Kann man auch anders abbilden..
 
izoards

izoards

Aktives Mitglied
Also wenn Du eine TCP/IP Verbindung hast: Da wirst Du entweder einen Socket oder einen SocketChannel haben, je nachdem ob du den alten io oder den neuen nio namespace nutzen willst. Letzterer hat den Vorteil, dass der sehr schön non blocking IO unterstützt.

Ufff... Ich glaube ich weiss wo es hinaus läuft.
Ich hab eben eine primitive TCP/IP Klasse, welche ohne Threads arbeitet:

Java:
public class TCPClient {

    public Socket socket;
    public Scanner scanner;

    public void initTCP(String serverAddress, int serverPort) throws Exception {
        this.socket = new Socket(serverAddress, serverPort);
        this.scanner = new Scanner(System.in);
    }



    public synchronized void  writeMessage(String input) {
        //input;
        try {
            //while (true) {
            //      input = scanner.nextLine();
            PrintWriter out = new PrintWriter(this.socket.getOutputStream(), true);
            out.println(input);
            out.flush();
        } catch (Exception e) {
                System.err.println(e.getMessage() + "  -> Write error inside TCP_Client!");
        }
        //  }
    }

    public synchronized String readMessage() throws IOException {

        String nachricht = "AK";
        try {
            BufferedReader bufferedReader =
                    new BufferedReader(
                            new InputStreamReader(
                                    socket.getInputStream(), Charset.forName("UTF-8")));
            char[] buffer = new char[200];
            while (nachricht.contains("AK")) {
                int anzahlZeichen = bufferedReader.read(buffer, 0, 200); // blockiert bis Nachricht empfangen
                nachricht = new String(buffer, 0, anzahlZeichen);
            }

        } catch (SocketException e) {
            nachricht = "error";
            System.err.println("Error: " + e.getMessage());
        }
        return nachricht;
    }
}


Meine dubiose Idee, scheint zu funktionieren.
Jedoch kann es trotzdem noch zu abstürzen kommen, wenn nämlich die beiden Tasks gleichzeitig mit dem Server Kommunizieren möchten...
Also ich kann es auch reproduzieren, da ich ja das Intervall des Task 2 kenne.
Wenn ich dann, den Task 1 manuell anwerfe, bleibt das ganze hängen....

Kann ich das mit Synchronized nicht verhindern?

Muss ich meine TCPClient Klasse umbauen? (Also wie du schreibst in Threads packen?)
 
izoards

izoards

Aktives Mitglied
Kann es sein, dass diese TCP Verbindung sehr langsam ist?
Gerade habe ich das Gefühl, dass die Kommunikation über TCP seeehr langsam geht....
Oder ist das normal? Habe leider noch sehr wenig Erfahrung mit TCP kommunikation...
Wobei die kommunikation mit putty auch so träge ist....
 
kneitzel

kneitzel

Top Contributor
Also was verstehst Du unter langsam? Wenn Du rein lokal testest, dann ist da garantiert nichts langsam ... Aber bei langsamen oder ausgelasteten Leitungen kann ein Transfer auch langsam sein...

Und ich blicke bei dem, was Du da erzählst immer noch nicht durch. Generell scheinst Du aber Textbasiert und Zeilenorientiert zu arbeiten.

Mehrere Threads sollen Nachrichten schreiben können? Da kannst Du prinzipiell mit synchronized arbeiten, dann kann immer nur ein Thread etwas senden (also das writeMessage aufrufen).

Aber ich halte es für falsch, da immer einen neuen PrintWriter zu erstellen. Zum einen schließt Du diesen nie (Das passiert dann vermutlich beim GC lauf) und beim close wird der zugrunde liegende Stream auch geschlossen. Und das wirst Du nicht wollen, dann dann kannst Du da auch nichts mehr rein schreiben. (Das könnte vielleicht Dein Problem sein - das hat dann nichts mit Threads zu tun, sondern schlicht mit geschlossenen Streams)

Generell solltest Du vernünftig alle Daten mitschreiben und uns auch geben:
Java:
        } catch (Exception e) {
            System.err.println(e.getMessage() + "  -> Write error inside TCP_Client!");
            e.printStackTrace(System.err);
        }
==> Also immer genaue Exception und Stacktrace bei Problemen mitteilen! Dann kann man so Fehler (so ich richtig vermutet habe) einfacher eingrenzen.

Nebenbei noch:
Du hast Autoflush auf true gesetzt - somit kann der flush Aufruf gehen...

Deine read Methode ist dubios. Vermutlich wirst Du auch Zeilenorientiert arbeiten beim Empfang. Daher solltest Du da auch entsprechend handhaben.

Hintergrund ist, dass Daten in mehreren Paketen verschickt werden. Wenn ich als sende:
Hallo Du!\n
Dann kann da erst das "Hall" ankommen und dann "o Du!\n"

oder bei
Hallo Du!\nHallo Du!\n
kann dann deine eine Nachricht sein: Hallo Du!\nHallo Du!\n

Also ganz wichtig:
a) Du kannst mehrere Pakete oder nur Teilpakete bekommen
b) Das Trennzeichen ist da natürlich auch mit drinnen.

Das kann man manuell handhaben: Also immer in ein Byte-Array schreiben und dann nach dem Trenner schauen:
Ist ein Trenner vorhanden, dann wird das Array bis zum Trenner als Nachricht ausgewertet. Das so lange, bis kein Trenner mehr da ist.
Der Rest verbleibt im Puffer und wird mit dem nächsten Paket ergänzt.

Das Gute ist: Für Textbasierte Nachrichten mit Zeilenumbruch als Trennzeichen haben wir schon fertige Klassen, die das können. So wie bei Eingaben kannst Du da alles verwenden, das ein readLine kennt. (BufferedReader, Scanner, ....)
 
izoards

izoards

Aktives Mitglied
Besten Dank Kneisel für deine Inputs,
Die Write bzw. vorallem also die Read Methode muss ich nochmals neu angehen, denke ich.
Ich habe diese aus einem Tutorial übernommen und ein bisschen angepasst..
Hättest Du mir evt. ein best practice Beispiel für ein Reader und Writer?

Wäre es dann bei der Write Methode richtig, den PrintWriter als Klassenvariable zu erstelllen, oder im Konstruktor?
Oder so drinnen lassen, jedoch jeweils aktiv schliessen?
Ich muss es am Abend in Ruhe anschauen...

Bezüglich speed:

was verstehst Du unter langsam? Wenn Du rein lokal testest, dann ist da garantiert nichts langsam ... Aber bei langsamen oder ausgelasteten Leitungen kann ein Transfer auch langsam sein...

Hier die Kommunikation, sie ist lokal, und der gegenspieler ist eine Software. Die Befehle welche ich eingegeben haben, tragen nichts weiter als die Zahlen in ein Feld der SW ein. Hier das Video: Video
Das ist doch langsam, oder?

Ich glaube jedoch trotzdem, dass mein jetziges Problem, eher von den beiden Threads kommen, welche die TCP Kommunikation gemeinsam nutzen. Also eine Race Condition...

Denn dieses Problem hatte ich noch nie, wenn ich den einen Thread (Task 2) abschalte.

Hier Zwei Bilder, eines ist der Normalablauf, (Task 2) wurde auf grösser 10 sec. eingestellt.
Der Normalablauf (Einzelne Befehle hintereinander schicken, dauert ca. 10sec.)

Wenn ich den Task 2 auf 1 sec. einstelle, "funkt" der mir dazwischen. -> (Bild zwei)

Also vom prinzip her geht es so: ich sende z.b. "f41" die SW sendet ein "AK" und dann ein "OK41"
Das AK fange ich im TCP Reader bereits ab..

Eigentlich habe ich die Code Teile, welche hier reinspielen mit synchronized gekennzeichnet.....


Im Bild RaceCondition sieht man, dass zweimal geschrieben wird, und die Antwort nur von einem Befehl kommt. Danach geht nichts mehr...





NACHTRAG: Beim Befehl "f13" kann die Antwort der SW auch länger gehen. (Bis zu einigen sekunden)
Aber da ich ja dann im Reader drin sein sollte, dürfte der Thread doch nichts neues senden....(?)
Oder wie kann ich das Ausschliessen?
 

Anhänge

  • NormalAblauf.PNG
    NormalAblauf.PNG
    66,9 KB · Aufrufe: 17
  • RaceCondition.PNG
    RaceCondition.PNG
    58,5 KB · Aufrufe: 18
Zuletzt bearbeitet:
izoards

izoards

Aktives Mitglied
Ich denke, ich habe es jetzt hingekriegt.
Habe die TCP Write und Read Methode angepasst. Jetzt wird jeweils geschrieben gelesen und erst dann wieder zurück in den Main Thread gewechselt. So konnte ich die Abstürze nicht mehr simulieren.

Was mir nun noch zu denken gibt:

Aber ich halte es für falsch, da immer einen neuen PrintWriter zu erstellen. Zum einen schließt Du diesen nie (Das passiert dann vermutlich beim GC lauf) und beim close wird der zugrunde liegende Stream auch geschlossen. Und das wirst Du nicht wollen, dann dann kannst Du da auch nichts mehr rein schreiben. (Das könnte vielleicht Dein Problem sein - das hat dann nichts mit Threads zu tun, sondern schlicht mit geschlossenen Streams)

Ich schliesse tatsächlich während der Laufzeit des Programmes nichts dergleichen.
Jetzt habe ich mal den Task manager geöffnet und sehe bei Arbeisstpeicher, dass dieser sich mit jedem durchlauf des Hintergrundtasks erhöhrt.
(Das sollte vermutlich nicht sein?)

Nun überlege ich mir, was ich alles schliessen muss.

Kann ich davon ausgehen, dass überall wenn ich ein neues Objekt erstelle, dieses nach der verwendung auch wieder schlissen sollte?
Also wie Du gesagt hast mit dem PrintWriter, welcher nicht immer neu erstellt werden soll..

Ich hab da nämlich noch Methoden, welche ein XML File auslesen / bzw. beschreiben, wo ich ebenfalls jeweils nue Objekte erstelle.
Muss ich solche Sachen immer wieder schliessen?

Oder wie ist hier das beste Vorgehen?

Hier ein Beispiel einer XML - Zugriffs Methode:

Java:
public String getInfo(String TagName, String ElementName, String pathIn) {

        String result = "";
        try {
            File inputFile = new File(pathIn + WinSW_XML_TCP.INPUTFILENAME);
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(inputFile);
            doc.getDocumentElement().normalize();
            //System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

            NodeList nList = doc.getElementsByTagName(TagName);
            //System.out.println("----------------------------");

            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);
                //System.out.println("\nCurrent Element :" + nNode.getNodeName());

                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
                    //    System.out.println("ElementName : "
                    result = eElement.getAttribute(ElementName);

                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

Müsste ich hier was schliessen? Bzw. gar nicht in der Methode öffnen?


Vielen Dank für die Hilfe...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
I JFrame-Anmerkung "Java Applet Window" entfernen AWT, Swing, JavaFX & SWT 4
K Prompt window in Java? AWT, Swing, JavaFX & SWT 3
F Window#setAlwaysOnTop und Java 1.4.x AWT, Swing, JavaFX & SWT 5
R "Statusbar" - JFrame mit 'Java Applet Window' AWT, Swing, JavaFX & SWT 18
T Swing DPI-Skalierung und Java 2D unter Java 11 (und Windows 10) AWT, Swing, JavaFX & SWT 2
J Spiel mit Java AWT, Swing, JavaFX & SWT 9
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
N FXMLLoader.load java.lang.RuntimeException: Gradle AWT, Swing, JavaFX & SWT 2
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
M Jogl und Java 3d AWT, Swing, JavaFX & SWT 0
S0PEX JavaFX Java 8 auf 15 migrieren OpenJFX mit Gradle eingebunden, jedoch nicht gefunden !? AWT, Swing, JavaFX & SWT 4
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
V Java-Zeichenfeld mit AWT AWT, Swing, JavaFX & SWT 3
N java Gui friert scheinbar zufällig ein AWT, Swing, JavaFX & SWT 5
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
P Java Fx einrichten AWT, Swing, JavaFX & SWT 2
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
M Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Trèfle Ausklappbare Diagramme in Java AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
K JAVA FX Constraints AWT, Swing, JavaFX & SWT 2
F Java FX und webcam AWT, Swing, JavaFX & SWT 1
T Wie kann man in java aufwendige grafiken programmieren AWT, Swing, JavaFX & SWT 1
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
J Java SWT Tabelleninhalt formattieren AWT, Swing, JavaFX & SWT 10
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
K Swing AWT-EventQueue-1 java.lang.NoClassDefFoundError bei setVisible(true) AWT, Swing, JavaFX & SWT 3
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
J Parallele Aktionen in Java FX richtig durchführen. AWT, Swing, JavaFX & SWT 5
M JavaFX java.lang.IllegalStateException: Location is not set. AWT, Swing, JavaFX & SWT 9
L Java- CardLayout AWT, Swing, JavaFX & SWT 10
M Java zeichnet nicht pixelgenau AWT, Swing, JavaFX & SWT 40
B Swing Eclipse is running under 0, but this Java project has a 1.6 Java compliance level, so WindowBuilder AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
S Java Gui AWT, Swing, JavaFX & SWT 5
R Sierpinski Dreieck mit Java FX AWT, Swing, JavaFX & SWT 4
Flynn java.lang.UnsupportedOperationException: Not supported yet AWT, Swing, JavaFX & SWT 7
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
N Aktualisierung des Fensters AWT Java ohne Ruckeln AWT, Swing, JavaFX & SWT 3
M Java, Maven Projekte nach JavaFX? AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
D Swing Java JComboBox Example AWT, Swing, JavaFX & SWT 16
J AWT System Farben / java.awt.SystemColor funktioniert nicht AWT, Swing, JavaFX & SWT 4
M Java Projekt nach JavaFX convertieren AWT, Swing, JavaFX & SWT 4
L Java Fx Installationsprobleme AWT, Swing, JavaFX & SWT 2
K Berührungsdetection in Java AWT, Swing, JavaFX & SWT 1
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
K Event Handling Mit ActionPerformed und java.io arbeiten AWT, Swing, JavaFX & SWT 3
K JavaFX Titel und Fenstergröße aus Main.java übergeben AWT, Swing, JavaFX & SWT 0
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
B Tabellensortierung/Filterung per Java GUI AWT, Swing, JavaFX & SWT 12
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
C Java Hintergrund funktioniert nicht AWT, Swing, JavaFX & SWT 9
S Kann man erzwingen, dass Java 'zu Ende zeichnet'..? AWT, Swing, JavaFX & SWT 7
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
E Java Fullscreenmodus AWT, Swing, JavaFX & SWT 16
R JRE, NPAPI Java Plugins: Werden Plugins weiterhin bereit gestellt? AWT, Swing, JavaFX & SWT 5
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
Thallius Single Sign On in Java Implementieren AWT, Swing, JavaFX & SWT 6
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
C 3D Grafikdateien in Java einbinden? AWT, Swing, JavaFX & SWT 9
DjangoDieMango Swing Java TabbedPane AWT, Swing, JavaFX & SWT 2
E JavaFX FXML vs. Java Code AWT, Swing, JavaFX & SWT 3
K Java FX: Mathematik Editor AWT, Swing, JavaFX & SWT 14
MaxG. Swing Java Look and Feel AWT, Swing, JavaFX & SWT 2
W Laufschrift-Hänger mit Java 8 AWT, Swing, JavaFX & SWT 13
M PDF in Java FX anzeigen AWT, Swing, JavaFX & SWT 21
X Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 AWT, Swing, JavaFX & SWT 6
Ghostman1711 Java JFormattedTextfield MaskFormatter ohne Leerzeichen AWT, Swing, JavaFX & SWT 3
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
C Java SWT StyledText SQL-Syntax-Highligthing AWT, Swing, JavaFX & SWT 20
D JavaFX Java Methoden mit JavaFX Methode kommunizieren lassen? AWT, Swing, JavaFX & SWT 3
Sugan Inhalte mit Threads ändern -> java.lang.IllegalStateException AWT, Swing, JavaFX & SWT 6
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
M Java Gui Projekt, Würfelspiel AWT, Swing, JavaFX & SWT 2
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
P Java ScrollPane und ViewPort AWT, Swing, JavaFX & SWT 2
D java.lang.IndexOutOfBoundsException: AWT, Swing, JavaFX & SWT 18
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
S JavaFX FXML-Editor mit Java 7? AWT, Swing, JavaFX & SWT 2
B JavaFX Java FX Html Template AWT, Swing, JavaFX & SWT 0
X Java Fxml laden AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben