While-Schleife in einem Service für GUI

heinz ketchup

Mitglied
Halli Hallo,
ich programmiere derzeit eine "Suchmaschine", welche mithilfe einer While-Schleife überprüfen soll, ob die Buchstaben, welche ich in ein TextField eintippe, mit einem "Random String", welchen ich mit einer zufälligen Reihenfolge an Buchstaben des Alphabets auf die länge des Textes im TextField fülle, übereinstimmen. Das passiert dann natürlich sehr oft und sehr schnell. Ich möchte mir den "RandomString" in der GUI anzeigen lassen, was ich mithilfe eines Services machen lasse.
Die Überprüfung, ob TextField.getText() = "RandomString" passiert hier:
Java:
label.textProperty().addListener(new ChangeListener<String>()
        {
            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue)
            {
                if(inputField.getText().equals(label.getText()))
                {
                    winLabel.setText("ERFOLG");
                    System.out.println("ERFOLG");
                    Platform.runLater(() -> pb.setProgress(1));
                }
            }
        });

und mein Service sieht so aus:
Java:
ScheduledService<Integer> service = new ScheduledService<Integer>()
        {
            @Override
            protected Task<Integer> createTask()
            {
                return new Task<Integer>()
                {
                    @Override
                    protected Integer call() throws Exception
                    {                                      
                        Platform.runLater(() ->
                        {
                            System.out.println("Service läuft...");
                            System.out.println("Having: " + label.getText() +
                                    " | Looking for: " + inputField.getText() +
                                    " | inputField length: " + inputField.getLength() +
                                    " | meineZahl length: " + meineZahl +
                                    " | getMeineZahl length: " + getMeineZahl());
                            meineZahl = inputField.getLength();
                          
                            while(!winLabel.getText().equals("ERFOLG"))
                            {
                                label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                              
                                if(winLabel.getText().equals("ERFOLG"))
                                {
                                    break;
                                }
                            }
                        });
                        return 0;
                    }
                          
                };
            }
          
        };
        //service.setDelay(Duration.seconds(1));
        service.setPeriod(Duration.millis(speed));
Den Service steuer ich mit service.restart(); und service.cancel(); in jeweils einem Start- und Stop-Button.
Das Problem ist, dass sich das Interface aufhängt und auch nicht die System Printlines in der Konsole anzeigt. Sobald das Wort jedoch gefunden wurde, werden die Printlines angezeigt. Meine Vermutung ist, dass es an der While-Schleife liegt. Mit einer If-Abfrage hängt sich da nämlich nichts auf, jedoch wird nur einmal Abgefragt.
Ich bitte höflichst um Hilfestellung und Lösungsvorschläge, wie ich das evtl. sogar besser hinbekommen könnte.
Falls ihr Fragen habt oder ich etwas vergessen haben sollte, lasst euch in den Comments aus.
Vielen Dank im Voraus.
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Ich zitiere Saxony:
,,isein bekannstes Problem. Dein break steht innerhalb eines anderen Blockes (if) und nicht direkt als Anweisung im while Block."
 

mrBrown

Super-Moderator
Mitarbeiter
Ich bin ehrlich gesagt noch nicht ganz schlau geworden aus deiner Beschreibung.

eine while-schleife im Event-Thread blockiert diesen aber logischerweise, woher dein eines Problem rührt.


Ich zitiere Saxony:
,,isein bekannstes Problem. Dein break steht innerhalb eines anderen Blockes (if) und nicht direkt als Anweisung im while Block."
Ein break bezieht sich ohne Label immer auf die nächste umgebende Schleife oder Switch. Völlig unabhängig, wie tief das geschachtelt ist.
 

heinz ketchup

Mitglied
Ich bin ehrlich gesagt noch nicht ganz schlau geworden aus deiner Beschreibung.
Wobei brauchst du denn detailliertere Erklärung?

eine while-schleife im Event-Thread blockiert diesen aber logischerweise, woher dein eines Problem rührt.
Naja. Als ich dafür einen stink normalen Thread verwendet habe, hat das mit der while-schleife problemlos funktioniert, siehe hier:
Java:
Thread t = new Thread()
{
    @SuppressWarnings("unlikely-arg-type")
    public void run()
    {
        try
        {
            Thread.sleep(speed);
        }
        catch (InterruptedException e1)
        {
            e1.printStackTrace();
        }
         
        Platform.runLater(() ->
        {
            while(run == true)
            {         
                System.out.println("Having: " + label.getText() +
                        " | Looking for: " + inputField.getText() +
                        " | inputField length: " + inputField.getLength() +
                        " | meineZahl length: " + meineZahl +
                        " | getMeineZahl length: " + getMeineZahl());
             
                while(!inputField.getText().equals(label))
                {
                    inputField.setEditable(false);
         
                    label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                 
                    if(winLabel.getText().equals("ERFOLG") || run == false)
                    {
                        break;
                    }
                 
                    if(winLabel.getText().equals("ERFOLG"))
                    {
                        label.setText(inputField.getText());                     
                    }
                }
            }
        });
    };
    t.start();
Problem beim Thread ist nur, das ich den nicht mit Start- und Stopp-Buttons steuern kann. Über while-schleifen mit Booleans hat das auch nicht ganz funktioniert.
 

mrBrown

Super-Moderator
Mitarbeiter
Wobei brauchst du denn detailliertere Erklärung?
Dafür, was du eigentlich erreichen willst.

Naja. Als ich dafür einen stink normalen Thread verwendet habe, hat das mit der while-schleife problemlos funktioniert, siehe hier:
Das führt zu dem gleichen Problem, die Schleife blockiert den Event-Thread und damit die GUI.

In beiden Fällen verschiebst du die Schleife ganz explizit aus dem anderem Thread in den Event-Thread.
Steuern kannst du auch bei deiner Variante mit Service nichts, da nichts innerhalb des Services läuft, außer alles in den Event-Thread zu schieben
 

Barista

Top Contributor
Als ich noch Swing gemacht habe (lang her) sollten langlaufende Aufgaben mit

SwingUtilities.invokeLater

in einen anderen Thread als den Event-Dispatch-Thread verschoben werden.
 

heinz ketchup

Mitglied
Also, ich weiß nur, dass es mit dem Thread problemlos funktioniert hat. Das einzige Problem und auch K.O.-Kriterium war, das ich den Thread nicht mit t.start(); und t.cancel(); kontrollieren konnte (auch andere Befehle, wie t.notify(); und t.wait(); funktionieren nicht). Den Service kann ich einfach mit service.restart(); im Start-Button und serivce.cancel(); im Stop-Button kontrollieren.
Von Event-Threads höre ich jetzt allerdings zum ersten mal.
SwingUtilities.invokeLater ist das selbe, wie Platform.runLater.
 

heinz ketchup

Mitglied
Ok, ich hab mich ein wenig Schlau gemacht.
Bei Stackoverflow meinen die Herrschaften, ich soll bei Services einen Task anstatt Platform.runLater verwenden.
Das ganze sieht bei mir dann so aus:
Java:
ScheduledService<Integer> service = new ScheduledService<Integer>()
        {
            @Override
            protected Task<Integer> createTask()
            {
                return new Task<Integer>()
                {
                    @Override
                    protected Integer call() throws Exception
                    {
                        Task task = new Task<Void>()
                        {
                            @Override
                            public Void call()
                            {
                                System.out.println("Service läuft...");
                                System.out.println("Having: " + label.getText() + 
                                        " | Looking for: " + inputField.getText() + 
                                        " | inputField length: " + inputField.getLength() + 
                                        " | meineZahl length: " + meineZahl + 
                                        " | getMeineZahl length: " + getMeineZahl());
                                meineZahl = inputField.getLength();
                           
                                while(!winLabel.getText().equals("ERFOLG"))
                                {
                                    label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                               
                                    if(winLabel.getText().equals("ERFOLG"))
                                    {
                                        break;
                                    }
                                }
                                return null;
                            }
                        };
                        new Thread(task).start();
                        return 0;
                    }
                           
                };
            }
           
        };
        //service.setDelay(Duration.seconds(1));
        service.setPeriod(Duration.millis(speed));
Tja, leider funktioniert das auch nicht, wie gewollt.
Jetzt bekomme ich die Meldung "Exception in thread "Thread-8" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-8".
Eine weitere angebliche Lösung aus dem Internet wäre eine "Timeline".
Ich hab mir kurz ein Video von NetLamp darüber reingezogen und das hatte nix mit dem zu tun, was ich machen möchte.

Dafür, was du eigentlich erreichen willst.
Tieferen Sinn hat das ganze nicht. Ein Kumpel ist auf mich zugekommen und meinte, das wäre einen gute Übung für mich, da ich noch neu bin am Javahimmel.
 

mrBrown

Super-Moderator
Mitarbeiter
Eine 9-Blöcke tiefe Schachtelung sollte Grund genug sein, den Computer stehen zu lassen und schreiend wegzurennen ;)

Tieferen Sinn hat das ganze nicht. Ein Kumpel ist auf mich zugekommen und meinte, das wäre einen gute Übung für mich, da ich noch neu bin am Javahimmel.
Auch wenn das eine gute Übung ist, weiß ich immer noch nicht, *was* du da eigentlich machen möchtest ;)

Wenn ich das richtig verstehe, soll solange irgendwo immer ein neuer, zufälliger Text angezeigt werden, bis eine Bedingung erfüllt ist, und das ganze soll Start- und Pausierbar sein?
 

heinz ketchup

Mitglied
Eine 9-Blöcke tiefe Schachtelung sollte Grund genug sein, den Computer stehen zu lassen und schreiend wegzurennen ;)

Ich hab einen Ryzen 7 1800X, falls du das meinst. Und ja, mein Programmier-Stil lässt noch zu wünschen übrig.
Außerdem zähle ich nur acht.


Auch wenn das eine gute Übung ist, weiß ich immer noch nicht, *was* du da eigentlich machen möchtest ;)

Wenn ich das richtig verstehe, soll solange irgendwo immer ein neuer, zufälliger Text angezeigt werden, bis eine Bedingung erfüllt ist, und das ganze soll Start- und Pausierbar sein?

Präzise
 

mrBrown

Super-Moderator
Mitarbeiter
Ich hab einen Ryzen 7 1800X, falls du das meinst.
Ne, eigentliche hat der Prozessor ziemlich wenig mit der Struktur des Quellcodes zu tun...

Außerdem zähle ich nur acht.
Kommt auf die Zählweise und das drumherum an ;)

##

Eine Timeline oder ein Simpler Timer dürfen für diesen Fall das passende sein.
Die läufen einfach mit passendem Intervall (ohne Schleife!) und machen nichts anderes(!), als den zufälligen Text zu setzen (pseudocodemäßig ein runLater( setText(...))).

Wenn der Text nicht mehr geändert werden soll, stoppst du den Timer/die Timeline einfach. Genauso wie mit dem Button zum Stoppen.
 

heinz ketchup

Mitglied
Eine Timeline oder ein Simpler Timer dürfen für diesen Fall das passende sein.
Die läufen einfach mit passendem Intervall (ohne Schleife!) und machen nichts anderes(!), als den zufälligen Text zu setzen (pseudocodemäßig ein runLater( setText(...))).

Wenn der Text nicht mehr geändert werden soll, stoppst du den Timer/die Timeline einfach. Genauso wie mit dem Button zum Stoppen.

Meinst du quasi eine Timeline anstatt des Services oder die Timeline in den Service hinein setzen?
 

heinz ketchup

Mitglied
Okay ich hab jetzt Folgendes:
Java:
Timeline tl = new Timeline(new KeyFrame(
                Duration.INDEFINITE,
                ae -> {
                    System.out.println("Service läuft...");
                    System.out.println("Having: " + label.getText() + 
                            " | Looking for: " + inputField.getText() + 
                            " | inputField length: " + inputField.getLength() + 
                            " | meineZahl length: " + meineZahl + 
                            " | getMeineZahl length: " + getMeineZahl());
                    meineZahl = inputField.getLength();
                    label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                }
                ));

und tl.play(); befindet sich im Start-Button.
Das führt er so nicht aus, sprich ich bekomme nicht die entsprechenden Printlines in der Konsole angezeigt.
Auch mit "Duration.hours(1)" oder Duration.ZERO" usw passiert nichts spannendes.
Hab ich etwas übersehen oder so? Ist ja schon spät. Ich weiß gar nicht, warum ich noch Wach bin.
Das Wissen über Timelines hab ich jetzt hier gefunden.
 

thecain

Top Contributor
warum nicht so wie du im Beitrag verlinkt hast?

Periodic action
This is how to schedule a periodic action using Timeline:
Code:
Timeline timeline = new Timeline(new KeyFrame(
       Duration.millis(2500),
       ae -> doSomething()));
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
 

heinz ketchup

Mitglied
Ok, jetzt funktioniert das.
Schaut im Moment so aus:
Java:
Timeline tl = new Timeline(new KeyFrame(
                Duration.millis(speed),
                ae -> 
                {
                    System.out.println("Service läuft...");
                System.out.println("Having: " + label.getText() + 
                        " | Looking for: " + inputField.getText() + 
                        " | inputField length: " + inputField.getLength() + 
                        " | meineZahl length: " + meineZahl + 
                        " | getMeineZahl length: " + getMeineZahl());
                meineZahl = inputField.getLength();
                label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                if(label.getText().equals(inputField.getText()))
                {
                    System.out.println("tl if");
                    tlstop();
                }
                }));
        tl.setCycleCount(Animation.INDEFINITE);
       
        Object tlstop;
        {
            tl.stop();
        }

Object tlstop(); wollte ich als meinen Auslöser einsetzen, wenn das Wort gefunden wurde.
Leider geht er gar nicht erst in die if-abfrage in der Timeline hinein. Ich glaube aber, ich kann
in dem Fall auch mit SCHEDULED und so arbeiten. Muss ich mir aber noch weiter durchlesen.
 

heinz ketchup

Mitglied
Was ich brauche, ist quasi Duration.while(!label.getText().equals(inputField.getText()));.
Fällt jemanden dazu was ein? Im Internet konnte ich bisher nichts finden.

Edit: Das der Code oben nicht funktioniert, ist mir durchaus bewusst.
 

heinz ketchup

Mitglied
Ok, hab ne Lösung eigenständig gefunden:
Java:
Timeline tl = new Timeline(new KeyFrame(
                Duration.millis(speed),
                ae ->
                {
                    Platform.runLater(() ->
                    {
                        if(!winLabel.getText().equals("ERFOLG"))
                        {
                            System.out.println("Service läuft...");
                            System.out.println("Having: " + label.getText() + 
                                    " | Looking for: " + inputField.getText() + 
                                    " | inputField length: " + inputField.getLength() + 
                                    " | meineZahl length: " + meineZahl + 
                                    " | getMeineZahl length: " + getMeineZahl());
                            meineZahl = inputField.getLength();
                            label.setText(das_affenprojekt_experimentieren.RandomTextausgabe());
                        }
                    });
                }));
        tl.setCycleCount(Animation.INDEFINITE);

Das hat bis jetzt funktioniert.
Ich bedanke mich für eure freiwillige Mitarbeit und Hilfestellung
und wünsche euch einen guten Abend.
Bis dahin
 

mrBrown

Super-Moderator
Mitarbeiter
einen Listener auf die Textfelder, und wenn beide gleich sind ein t1.stop() oder ei stop innerhalb des KeyFrames

(Im Idealfall refactored man das danach MVC-Konform)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
R MVC Observer While-Schleife AWT, Swing, JavaFX & SWT 3
raptorrs JTextfelder werden in while-Schleife nicht aktualisiert AWT, Swing, JavaFX & SWT 5
G while schleife - keylistener AWT, Swing, JavaFX & SWT 4
F Frame wird nicht angezeigt nach while-Schleife AWT, Swing, JavaFX & SWT 3
G Exception javafx Thread -> caused by removing children while in EventHandler AWT, Swing, JavaFX & SWT 28
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
G Schleife verlangsamen AWT, Swing, JavaFX & SWT 3
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
C SWT Tab in Schleife AWT, Swing, JavaFX & SWT 9
C Schleife auf Mausklick warten lassen AWT, Swing, JavaFX & SWT 6
S Farbverlauf in for-Schleife berechnen AWT, Swing, JavaFX & SWT 4
H Swing Komponenten per Schleife auf JFrame AWT, Swing, JavaFX & SWT 4
F JLabel mittles Schleife einbinden?? AWT, Swing, JavaFX & SWT 3
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
S Problem mit JLabel (Bewegung in Schleife) AWT, Swing, JavaFX & SWT 7
D Schleife für Button AWT, Swing, JavaFX & SWT 4
R for-Schleife in Applet ausgeben AWT, Swing, JavaFX & SWT 3
H Mit for-schleife die Componenten eines Frames verändern AWT, Swing, JavaFX & SWT 5
A Jedes JTextfield einer klasse in einer foreach schleife abarbeiten AWT, Swing, JavaFX & SWT 3
R jTextField in Schleife ausfuellen AWT, Swing, JavaFX & SWT 4
I Swing repaint wird in for-Schleife aufgerufen - was passiert? AWT, Swing, JavaFX & SWT 12
M Button funktioniert nicht mehr wenn Schleife läuft AWT, Swing, JavaFX & SWT 3
R zweidim. JButton-Array in Schleife -> NullPointerExceptio AWT, Swing, JavaFX & SWT 2
S JMenu und ActionListener per Schleife erzeugen AWT, Swing, JavaFX & SWT 3
R das letzte JLabel in der Schleife will nicht an seinen Platz AWT, Swing, JavaFX & SWT 2
J ActionListener nimmt keine for()-Schleife? AWT, Swing, JavaFX & SWT 4
G For-Schleife AWT, Swing, JavaFX & SWT 4
B Deklaration von vielen Buttons mit Schleife vereinfachen? AWT, Swing, JavaFX & SWT 9
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
M Schleife mit Button abbrechen AWT, Swing, JavaFX & SWT 4
T JPanel in Schleife anlegen AWT, Swing, JavaFX & SWT 7
F Einlesen von text in textArea mittels for-schleife AWT, Swing, JavaFX & SWT 3
R Grafische Benutzereingabe in For-Schleife AWT, Swing, JavaFX & SWT 8
L vermutlich Problem in meiner for-Schleife AWT, Swing, JavaFX & SWT 6
S Mehrere Buttons in einer Schleife erzeugen . AWT, Swing, JavaFX & SWT 3
G Schleife mit repaint funktioniert nicht. AWT, Swing, JavaFX & SWT 7
A JTable Schleife AWT, Swing, JavaFX & SWT 4
M JDialog in for-Schleife mit Komponenten bestücken AWT, Swing, JavaFX & SWT 6
S JButton über Schleife erstellen AWT, Swing, JavaFX & SWT 4
R Button löst Schleife aus, danach friert die GUI ein ? AWT, Swing, JavaFX & SWT 7
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
S Swing zu einem Datum Tage addieren/subtrahieren AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
H JComobox in einem JPopupNeu AWT, Swing, JavaFX & SWT 7
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
D JavaFX Ein Parameter von einem Stage(GUI) zu einem anderen übergeben AWT, Swing, JavaFX & SWT 6
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F JavaFX PNG aus einem resource Ordner laden AWT, Swing, JavaFX & SWT 8
F JavaFX Checken ob der Input einem festgelegten Format gleicht AWT, Swing, JavaFX & SWT 7
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
Q-bert Doppelclick auf einem List item AWT, Swing, JavaFX & SWT 9
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
F abgeleitete Panels von einem ContentPanel AWT, Swing, JavaFX & SWT 4
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben