Cursor wird nach JFileChosser nicht gesetzt

Status
Nicht offen für weitere Antworten.

max60watt

Mitglied
Hallo zusammen,
im untem aufgeführten Programm wird nach dem OK des JFileChosser der Cursor auf WAIT gesetzt und danach eine Eingabe von mehren Dateien simuliert.
Eigentlich sollte der Cursor vor den Schleifen angezeigt werden aber erst nach beenden der Schleifen wird der Cursor gesetzt.
Kann mit jemand helfen?

Gruss Max

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame{
  JButton button = new JButton("Button");
//------------------------------------------------------------------------------------------------
  public Test(){
    super("Test");
    Container contPane = getContentPane();
    contPane.setLayout(null);
    button.setBounds(280,130,100,30);
    contPane.add(button);
    button.addActionListener(new ButtonActionListener(this));
  }
//------------------------------------------------------------------------------------------------
  public static void main(String args[]){
    Test app = new Test();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    app.setBounds(10,10,800,400);
    app.setVisible(true);
  }
//================================================================================================
class ButtonActionListener implements ActionListener{
  JFileChooser chooser = new JFileChooser();
  Test tst;
//------------------------------------------------------------------------------------------------
  public ButtonActionListener(Test t){
    this.tst = t;
  }
//------------------------------------------------------------------------------------------------
  public void actionPerformed(ActionEvent e){
    int state = chooser.showOpenDialog(null);
    if(state == JFileChooser.APPROVE_OPTION){
      tst.setCursor(new Cursor(Cursor.WAIT_CURSOR));
      for(int i=0;i<1000000;i++){        // Eingabe von Dateien simulieren
        for(int j=0;j<10000;j++){
        }
      }
      System.out.println("Fertig");     // hier erscheint der WAIT_CURSOR
    }
  }
}
//================================================================================================
}
[/code]
 

The_S

Top Contributor
joa, die Schleifen blockieren die GUI.

a) Auslagern der Schleifen in einen Thread
b) SwingUtilities.invokeLater um den setCursor-Aufruf
 

André Uhres

Top Contributor
Code:
               tst.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
                new Thread(new Runnable() {
                    public void run() {
                        for(int i=0;i<1000000;i++){        // Eingabe von Dateien simulieren
                            for(int j=0;j<10000;j++){
                            }
                        }
                        System.out.println("Fertig");
                        SwingUtilities.invokeLater(new Runnable() {
                            public void run() {
                                tst.setCursor(Cursor.getDefaultCursor());
                            }
                        });
                    }
                }).start();
 
G

Guest

Gast
Danke, es hat funktioniert.
Eigentlich war ich der Meinung da der Aufruf tst.setCursor(new Cursor(Cursor.WAIT_CURSOR)); vor der Schleife kommt, das der Cursor dann schon angezeigt wird.

Für alle, die es interessiert, habe ich den Codeschnipsel von André in das Programm eingebaut und zusätzlich eine JProgressBar zur Stausanzeige eingebunden.

Gruss Max

Code:
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Test extends JFrame{ 
  JButton button = new JButton("Button"); 
  JProgressBar progressbar = new JProgressBar(JProgressBar.HORIZONTAL,0,99999);
//------------------------------------------------------------------------------------------------ 
  public Test(){ 
    super("Test"); 
    Container contPane = getContentPane(); 
    contPane.setLayout(new FlowLayout()); 
    contPane.add(progressbar);
    contPane.add(button);
    button.addActionListener(new ButtonActionListener(this)); 
  } 
//------------------------------------------------------------------------------------------------ 
  public static void main(String args[]){ 
    Test app = new Test(); 
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    app.pack(); 
    app.setVisible(true); 
  } 
//================================================================================================ 
class ButtonActionListener implements ActionListener{ 
  JFileChooser chooser = new JFileChooser(); 
  Test tst; 
//------------------------------------------------------------------------------------------------ 
  public ButtonActionListener(Test t){ 
    this.tst = t; 
  } 
//------------------------------------------------------------------------------------------------ 
  public void actionPerformed(ActionEvent e){ 
    int state = chooser.showOpenDialog(null); 
    if(state == JFileChooser.APPROVE_OPTION){ 
       tst.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 
       new Thread(new Runnable() { 
         public void run() { 
           for(int i=0;i<100000;i++){        // Eingabe von Dateien simulieren 
             tst.progressbar.setValue(i);
             for(int j=0;j<50000;j++){ 
             }
           }
           SwingUtilities.invokeLater(new Runnable() { 
             public void run() { 
               tst.setCursor(Cursor.getDefaultCursor()); 
               tst.progressbar.setValue(0);
             } 
           }); 
           } 
         }).start(); 
    }
  }
}
//================================================================================================ 
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing GlassPane Cursor wird bei fremder Komponente nicht angezeigt AWT, Swing, JavaFX & SWT 3
Juelin TextField Cursor Position AWT, Swing, JavaFX & SWT 2
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
E verschiedene Cursor setzen AWT, Swing, JavaFX & SWT 1
E JavaFX Cursor-Position im ScrollPane AWT, Swing, JavaFX & SWT 0
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
domjos1994 JavaFX Element auswählen auf dem der Cursor ist AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
N Cursor im JTextField AWT, Swing, JavaFX & SWT 6
Q Cursor Frage AWT, Swing, JavaFX & SWT 8
B setCursor() lässt Cursor ganz verschwinden AWT, Swing, JavaFX & SWT 9
Madlip SWT Probleme mit SWT.CURSOR AWT, Swing, JavaFX & SWT 2
B Swing Cursor-Transparenz AWT, Swing, JavaFX & SWT 2
B Swing Eigenen Cursor setzen AWT, Swing, JavaFX & SWT 10
B Cursor Farbe ändern AWT, Swing, JavaFX & SWT 6
J Cursor blinken ausschalten AWT, Swing, JavaFX & SWT 4
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
Zettelkasten Cursor nicht anzeigen lassen AWT, Swing, JavaFX & SWT 2
C Cursor AWT, Swing, JavaFX & SWT 5
T Swing JTable - true zurückbekommen, wenn der Cursor in einer Zelle blinkt AWT, Swing, JavaFX & SWT 7
K mehrere JTextFields - wie finde ich die Cursor-Position? AWT, Swing, JavaFX & SWT 5
M Swing [JTextPane] Cursor lässt sich nicht mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 3
T Cursor im JPanel fangen AWT, Swing, JavaFX & SWT 2
D cursor bild und mouslistner AWT, Swing, JavaFX & SWT 9
M Cursor setzen im JTextPane AWT, Swing, JavaFX & SWT 3
hdi Custom Cursor: Problem mit Größe AWT, Swing, JavaFX & SWT 5
S AWT Eigenen Cursor im Frame verwenden... AWT, Swing, JavaFX & SWT 5
D JTextField behält meinen cursor nicht AWT, Swing, JavaFX & SWT 3
G Cursor Bewegung tracken AWT, Swing, JavaFX & SWT 2
H Flexibler Cursor AWT, Swing, JavaFX & SWT 8
G Komponente in der der Cursor steht zurückgeben? AWT, Swing, JavaFX & SWT 2
D Bild Cursor AWT, Swing, JavaFX & SWT 5
D JTextAray und Cursor AWT, Swing, JavaFX & SWT 11
T Problem mit dem Cursor AWT, Swing, JavaFX & SWT 7
R Den Cursor setzen AWT, Swing, JavaFX & SWT 5
M Problem mit Cursor für Panels AWT, Swing, JavaFX & SWT 4
B Spezieller Cursor in Swing AWT, Swing, JavaFX & SWT 7
T Markierten Mausbereich erfassen, Text beim Cursor platzieren AWT, Swing, JavaFX & SWT 6
V Cursor zu Groß AWT, Swing, JavaFX & SWT 4
T Cursor setzen AWT, Swing, JavaFX & SWT 3
L wie den Cursor von einem TextFeld zum anderen setzen? AWT, Swing, JavaFX & SWT 3
B Cursor zentriert in ein Textfeld positionieren AWT, Swing, JavaFX & SWT 2
E Cursor in JTextPane versetzen? AWT, Swing, JavaFX & SWT 19
D Farbe einer Grafik über den Cursor abfragen AWT, Swing, JavaFX & SWT 6
M Cursor im deaktivierten JInternalFrame AWT, Swing, JavaFX & SWT 2
A Cursor Icon bei DnD aus nativen Anwendungen AWT, Swing, JavaFX & SWT 2
S Cursor über JButton ändern AWT, Swing, JavaFX & SWT 4
V JTextField Focus Cursor setzen AWT, Swing, JavaFX & SWT 2
U Cursor beim Drag and Drop AWT, Swing, JavaFX & SWT 8
T JTextArea, in welcher Zeile befindet sich der Cursor AWT, Swing, JavaFX & SWT 25
clemson Cursor in JTable-Cell setzen AWT, Swing, JavaFX & SWT 6
P [TextField] cursor setzten AWT, Swing, JavaFX & SWT 2
Luma Keinen Cursor in JDialog? AWT, Swing, JavaFX & SWT 9
G Focus so setzen, daß in einer jTextArea der Cursor blinkt AWT, Swing, JavaFX & SWT 7
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
G JavaFX LineChart Datenpunkte Markierung wird abgeschnitten AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
S Next_Button wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 6
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JavaFX Bearbeitetes Bild wird nicht gespeichert AWT, Swing, JavaFX & SWT 9
J setOnCloseRequest wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
kodela BufferStrategy wird nicht gefunden AWT, Swing, JavaFX & SWT 5
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S ImageView wird dem Gridpane nicht zugefügt AWT, Swing, JavaFX & SWT 1
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19

Ähnliche Java Themen


Oben