Swing SwingWorker - max 10 Threats werden gestartet !?

ralfb1105

Bekanntes Mitglied
Hallo Community,

ich versuche für mein GUI mehrere "DB Tests" parallel zu starten und nutze dazu den SwingWorker. Das ganze klappt auch anscheinend für bis zu 10 Threats, dann aber anscheinend nicht mehr !!?? Ich habe das mal vereinfacht in folgendes kleines Programm/GUI runtergebrachten um Euch zu zeigen wo mein problem liegt.
Hier erst einmal der komplette Code:
Java:
package oracle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JTextArea;
import javax.swing.JToggleButton;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
@SuppressWarnings("serial")
public class TestMultipleUser extends javax.swing.JFrame {
    private JTextArea jTAOutput;
    private JButton jBExit;
    private JToggleButton jTBStartStop;
    private JSlider jSNoUser;
    private JLabel jLabel1;
    private JLabel jLTestRemaining;
    private JScrollPane jScrollPane1;
    private ProcessWorkerCounter pc;
    private Vector<ProcessWorkerDbTest> vcDbTest;

    /**
    * Auto-generated main method to display this JFrame
    */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                TestMultipleUser inst = new TestMultipleUser();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }
   
    public class ProcessWorkerCounter extends SwingWorker<Void, String>
    {
        private JLabel jLCounter;
        private long seconds;
        private Timer timerCounter;
        private Vector<ProcessWorkerDbTest> vcDbTest;
       
       
        //ProcessWorkerDbTest pt = new ProcessWorkerDbTest(jTAOutput);
       
        //Konstruktor
        public ProcessWorkerCounter(JLabel counter, long seconds, Vector<ProcessWorkerDbTest> vcDbTest)
        {
            this.jLCounter = counter;
            this.seconds = seconds;
            this.vcDbTest = vcDbTest;
        }
       
       
        //getter - Return Timer Object
        public Timer getTimerCounter() {
            return timerCounter;
        }
       
        class TaskCounter extends TimerTask
        {
           
           
          @Override public void run()
          {
              seconds--;
              long hh = seconds / 3600;
              long mm = (seconds % 3600) / 60;
              long ss = seconds - (hh * 3600) - (mm * 60);
              DecimalFormat format = new DecimalFormat("00");
              publish(format.format(hh) + ":" + format.format(mm) + ":" + format.format(ss));
              if (seconds == 0) {
                  for (int i=0; i < vcDbTest.size(); i++) {
                      ((ProcessWorkerDbTest)vcDbTest.elementAt(i)).cancel(true);
                    }
                  //pt.cancel(true);
                  pc.getTimerCounter().cancel();
                publish("Test finished!");
              } 
          }
        }
   
        @Override
        protected Void doInBackground() throws Exception
        {
            //hier l�uft alles in einem eigenen Thread (nebenl�ufig) ab. Es ist also egal wie lange die Abarbeitung hier dauert.
           
            this.timerCounter = new Timer();
            timerCounter.scheduleAtFixedRate(new TaskCounter(), 0, 1000);
           
            System.out.println("Start Tests: " + vcDbTest.size());
            for (int i=0; i < vcDbTest.size(); i++) {
                ((ProcessWorkerDbTest)vcDbTest.elementAt(i)).execute();
            }   
            return null;
        }
       
        @Override
        protected void process(List<String> chunks)
        {
            //hier l�uft alles auf dem EDT (Event Dispatch Thread). Darum k�nnen (und sollten) wir hier die GUI Komponenten manipulieren.
            for(int i = 0; i < chunks.size(); i++)
            {
                jLCounter.setText(chunks.get(i));
                //jTAOutput.append(System.getProperty("line.separator"));
            }
        }
    }
   
    public class ProcessWorkerDbTest extends SwingWorker<Void, String>
    {
        private JTextArea jTAOutput;
       
        public ProcessWorkerDbTest(JTextArea textArea)
        {
            this.jTAOutput = textArea;
        }


        @Override
        protected Void doInBackground() throws Exception
        {
            //hier l�uft alles in einem eigenen Thread (nebenl�ufig) ab. Es ist also egal wie lange die Abarbeitung hier dauert.
           
            while (!isCancelled()) {
                for (int i=1000; i>=0; i--) {
                    publish("DB Test Run: " + i);
                    TimeUnit.SECONDS.sleep(1);
                }
            }
           
            return null;
        }
       
       
       
        @Override
        protected void process(List<String> chunks)
        {
            //hier l�uft alles auf dem EDT (Event Dispatch Thread). Darum k�nnen (und sollten) wir hier die GUI Komponenten manipulieren.
            for(int i = 0; i < chunks.size(); i++)
            {
                jTAOutput.append(chunks.get(i));
                jTAOutput.append(System.getProperty("line.separator"));
            }
        }
    }
   
   
   
   
    public TestMultipleUser() {
        super();
        initGUI();
    }
   
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().setLayout(null);
            this.setTitle("Test Multiple User");
            {
                jScrollPane1 = new JScrollPane();
                getContentPane().add(jScrollPane1);
                jScrollPane1.setBounds(24, 142, 816, 216);
                {
                    jTAOutput = new JTextArea();
                    jScrollPane1.setViewportView(jTAOutput);
                    jTAOutput.setBounds(24, 142, 816, 216);
                    jTAOutput.setEditable(false);
                }
            }
            {
                jBExit = new JButton();
                getContentPane().add(jBExit);
                jBExit.setText("Exit");
                jBExit.setBounds(852, 335, 80, 23);
                jBExit.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        jBExitActionPerformed(evt);
                    }
                });
            }
            {
                jLTestRemaining = new JLabel();
                getContentPane().add(jLTestRemaining);
                jLTestRemaining.setBounds(136, 110, 130, 20);
                jLTestRemaining.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
            }
            {
                jLabel1 = new JLabel();
                getContentPane().add(jLabel1);
                jLabel1.setText("Remining Time");
                jLabel1.setBounds(36, 114, 111, 16);
            }
            {
                jSNoUser = new JSlider();
                getContentPane().add(jSNoUser);
                jSNoUser.setBounds(352, 81, 237, 45);
                jSNoUser.setMinimum(1);
                jSNoUser.setMaximum(19);
                jSNoUser.setMajorTickSpacing(3);
                jSNoUser.setMinorTickSpacing(1);
                jSNoUser.createStandardLabels(1);
                jSNoUser.setPaintLabels(true);
                jSNoUser.setPaintTicks(true);
                jSNoUser.setValue(4);
                jSNoUser.setFont(new java.awt.Font("Segoe UI",0,11));
            }
            {
                jTBStartStop = new JToggleButton();
                getContentPane().add(jTBStartStop);
                jTBStartStop.setText("Start-Stop");
                jTBStartStop.setBounds(656, 92, 118, 34);
                jTBStartStop.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        jTBStartStopActionPerformed(evt);
                    }
                });
            }
            pack();
            this.setSize(959, 415);
        } catch (Exception e) {
            //add your error handling code here
            e.printStackTrace();
        }
    }
   
    private void jBExitActionPerformed(ActionEvent evt) {
        System.exit(0);
    }
   
    private void jTBStartStopActionPerformed(ActionEvent evt) {
        toggleButtonAction();
    }
   
    private void toggleButtonAction() {
        if (jTBStartStop.isSelected()) {
            long seconds = 30;
           
            this.vcDbTest = new Vector<ProcessWorkerDbTest>();
           
            for (int i = 1; i <= jSNoUser.getValue(); i++) {
                vcDbTest.add(new ProcessWorkerDbTest(jTAOutput));
            }
           
            this.pc = new ProcessWorkerCounter(jLTestRemaining, seconds, vcDbTest);
            pc.execute();
        } else {
            System.out.println("Stop Tests: " + vcDbTest.size());
            for (int i=0; i < vcDbTest.size(); i++) {
                  ((ProcessWorkerDbTest)vcDbTest.elementAt(i)).cancel(true);
                }
            pc.getTimerCounter().cancel();
            System.out.println("Test stopped!!");
        }
    }
}

Es wird hier beim drücken des Toggle-Button der ProcessWorkerCounter gestartet, der dann die Test Zeit "aufzieht" und dann x-mal, abhängig vom eingestellten Wert der über jSlider eingestellt ist, die Klasse ProcessWorkerDbTest zu starten. Hier wird nur eine Text Zeile im jTextArea ausgegeben um zu zeigen das der Test läuft.

Problem:

Bis zu 10 geht alles wie gewünscht, stelle ich den Slider auf > 10 werden dennoch nur 10 Zeilen ausgegeben, sprich die Klasse wurde anscheinend nur 10x gestartet!? Die Objekte der Klasse ProcessWorkerDbTest habe ich einem Vector abgelegt, da ich gelesen habe das dieser ThreadSave ist - bin mir nicht sicher ob das so richtig ist.

Habt Ihr eine Idee was ich hier falsch mache?

Danke wie immer für Eure Unterstützung!!

LG

Ralf
 

ralfb1105

Bekanntes Mitglied
Hallo,

Da ich bis jetzt keine Erklärung oder Lösung für das oben beschriebene Verhalten gefunden habe :( würde es mich sehr interessieren ob das Verhalten in Eurer Umgebung auch existiert wenn Ihr das oben gezeigte Programm bei Euch startet. Wenn also jemand die Zeit findet das mal kurz zu testen, wäre ich sehr dankbar ... natürlich auch für alle anderen theoretischen Tips :rolleyes:

Danke schon mal!

Gruß

Ralf
 

ralfb1105

Bekanntes Mitglied
Hallo,

kurz zur Info, scheint also, wie vermutet ein Fehler im Programm auf meiner Seite zu sein. Ich habe es gerade auch unter Windows und MacOS getestet - gleiches Verhalten, also kein Problem der Umgebung. Tritt sowohl beim Aufruf unter Eclipse als auch beim Aufruf der erzeugten jar Datei auf.

Bin also auf Eure Hilfe angewiesen, denn mir fehlen hier die Ideen und die Erfahrung wie man so etwas debuggen könnte ... Mr. Google gibt auch nicht viel her.

Danke.

Gruß

Ralf
 

mihe7

Top Contributor
Die Erklärung ist relativ einfach: der von SwingWorker verwendete ExecutorService ist mir einer begrenzten Anzahl an Worker-Threads konfiguriert. Die Implementierung im OpenJDK hat z. B. 10.

Will man mehr, kann man einen eigenen ExecutorService verwenden:

Java:
import java.util.concurrent.*;

...
            ExecutorService es = new ThreadPoolExecutor(20, 20, 1L,
                    TimeUnit.MINUTES, new LinkedBlockingQueue<Runnable>());
            for (int i=0; i < vcDbTest.size(); i++) {
                es.execute((Runnable)vcDbTest.elementAt(i));
//                ((ProcessWorkerDbTest)vcDbTest.elementAt(i)).execute();
            }
...
 

ralfb1105

Bekanntes Mitglied
Hallo,

vielen Dank für Deinen Vorschlag, das kling sehr plausibel, doch leider bekomme ich in Eclipse einen Fehler wenn ich versuche in meinem Code das Objekt vom Type ExecutorService zu erstellen. Folgende Zeile habe ich in der Klasse "ProcessWorkerCounter" eingefügt:
Java:
ExecutorService es = new ThreadPoolExecutor(20, 20, 1L,TimeUnit.MINUTES, new LinkedBlockingQueue<Runnable>());
Den import für den ExecutorService habe ich durchgeführt, Eclipse beschwert sich über ThreadPoolExecutor und LinkedBlockingQueue, die er nicht "auflösen" kann --> "can not be resolved to a type".

Könntest Du mir bitte noch eine Hilfestellung geben wie ich diesen Fehler bewerten muss bzw. beheben kann?

Danke nochmals für Deine Hilfe!

Gruß

Ralf
 

ralfb1105

Bekanntes Mitglied
Sorry ... ich nehme alles zurück und behaupte das Gegenteil :D
Der Fehler saß mal wieder vor dem Bildschirm, habe den import java.util.concurrent.* nicht gemacht und zu Anfang nur den "import java.util.concurrent.ExecutorService". Da es dann noch mehrere Fehler gab hat mich Eclipse nicht auf die fehlenden imports hingewiesen.

So wie Du es geschrieben hast funktioniert es einwandfrei - VIELEN DANK für diese Info, das hilft mir sehr!!
Sorry nochmals für die Verwirrung ... das nächste Mal erst Debugger und dann schreiben ;)

Gruß

Ralf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Timer in SwingWorker stoppen AWT, Swing, JavaFX & SWT 4
S Swing SwingWorker - richtige Implementierung doInBackground() AWT, Swing, JavaFX & SWT 5
H Swing BufferedReader.close() hängt im SwingWorker AWT, Swing, JavaFX & SWT 1
Nuiton Swing SwingWorker - Prozess stoppen AWT, Swing, JavaFX & SWT 4
Thallius Auf Swingworker warten? AWT, Swing, JavaFX & SWT 5
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
C Swing SwingWorker abbrechen AWT, Swing, JavaFX & SWT 12
C Swing SwingWorker: Auf beendigung eines Formulars / einer Arbeit warten AWT, Swing, JavaFX & SWT 10
Psypsy Swing SwingWorker unterschied zwischen setProgress und process AWT, Swing, JavaFX & SWT 2
A Swingworker rückgabewert verwenden AWT, Swing, JavaFX & SWT 9
B Frage zu Swing,Threads, SwingWorker und Socket Communikation AWT, Swing, JavaFX & SWT 4
M Prioritäten bei SwingWorker / Threads AWT, Swing, JavaFX & SWT 9
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
Iron Monkey SwingWorker verschwindet nicht AWT, Swing, JavaFX & SWT 10
X Prozess mit Runtime.getRuntime in SwingWorker aufrufen AWT, Swing, JavaFX & SWT 6
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
G SwingWorker setProgress Problem AWT, Swing, JavaFX & SWT 17
K Frage zu ProgressBar, SwingWorker etc. AWT, Swing, JavaFX & SWT 4
G SwingWorker AWT, Swing, JavaFX & SWT 2
J Unterschied zwischen SwingWorker und Threads AWT, Swing, JavaFX & SWT 4
S SwingWorker :( AWT, Swing, JavaFX & SWT 6
F swingworker und eventdispatch thread AWT, Swing, JavaFX & SWT 9
S SwingWorker - ich werde wahnsinnig AWT, Swing, JavaFX & SWT 4
0 SwingWorker Tutorial ? AWT, Swing, JavaFX & SWT 2
L SwingWorker Thread pausieren AWT, Swing, JavaFX & SWT 12
L SwingWorker Statusabfrage AWT, Swing, JavaFX & SWT 8
M Kann ein SwingWorker nur einmal laufen? AWT, Swing, JavaFX & SWT 2
J SwingWorker, get und boolean AWT, Swing, JavaFX & SWT 6
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
melaniemueller JavaFX Beispiel kann nicht ausgeführt werden AWT, Swing, JavaFX & SWT 4
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
W Können Animationen in JavaFX "verschluckt" werden? AWT, Swing, JavaFX & SWT 8
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
H JButtons werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
ProggersWorld JavaFX Icons im TreeView werden nicht angezeigt AWT, Swing, JavaFX & SWT 1
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
J e(fx)clipse funkioniert nicht / imports werden Rot gekennzeichnet AWT, Swing, JavaFX & SWT 1
ronbot77 JavaFX Rechtecke werden nicht neu gezeichnet AWT, Swing, JavaFX & SWT 8
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
L Image kann nicht gefunden werden AWT, Swing, JavaFX & SWT 1
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
MoxxiManagarm JavaFX Auch ich versuche mit JavaFX warm zu werden AWT, Swing, JavaFX & SWT 9
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
L Swing JPanels werden nicht angezeigt! AWT, Swing, JavaFX & SWT 7
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
SchmidiMC 2D-Grafik Grafiken werden nicht gezeichnet AWT, Swing, JavaFX & SWT 2
J Controler werden nicht inialisiert - Warum ? AWT, Swing, JavaFX & SWT 12
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
R JRE, NPAPI Java Plugins: Werden Plugins weiterhin bereit gestellt? AWT, Swing, JavaFX & SWT 5
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
L Swing JComboBox kann nicht erstellt werden! AWT, Swing, JavaFX & SWT 2
DerMauri JavaFX Raspberry Pi meldet "Hauptklasse konnte nicht gefunden oder geladen werden" AWT, Swing, JavaFX & SWT 10
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
X JavaFX Tooltips für XYChart-Knoten werden nicht angezeigt! AWT, Swing, JavaFX & SWT 3
P JavaFX - XCF Datei von Gimp kann nicht angezeigt werden AWT, Swing, JavaFX & SWT 3
J Meine ProgBar und ProgIndi werden nicht aktualisiert AWT, Swing, JavaFX & SWT 28
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
D JavaFX GUI Komponenten werden langsam bei größerer Datenmenge AWT, Swing, JavaFX & SWT 6
C AWT Textfelder werden nicht automatisch angezeigt AWT, Swing, JavaFX & SWT 2
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
9 Swing Registrierte Knöpfe mit Bildern werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
L Tooltips werden nicht mehr angezeigt AWT, Swing, JavaFX & SWT 5
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
K JTabs werden nicht angezeigt AWT, Swing, JavaFX & SWT 6
kaoZ Swing JToolBar, ImageIcon werden teilweise verdeckt AWT, Swing, JavaFX & SWT 0
S Swing Tooltips werden nicht angezeigt AWT, Swing, JavaFX & SWT 5
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
D JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS) AWT, Swing, JavaFX & SWT 6
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
A Swing JColorChooser's Icon will nicht getauscht werden. AWT, Swing, JavaFX & SWT 10
G JavaFX TableView - Änderungen werden nicht übernommen. AWT, Swing, JavaFX & SWT 3
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
A Swing Parameter werden bei Funktionsaufruf nicht ausgegeben AWT, Swing, JavaFX & SWT 2
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
D Image soll langsam sichtbar werden AWT, Swing, JavaFX & SWT 4
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben