Wie folgendes am besten realisieren (Multithreading.)

Status
Nicht offen für weitere Antworten.
A

Arki

Gast
Hi,
also ich habe eine kleines Problem... letztendlich geht es dabei um Nachrichtenaustausch. Ich denke, ihr wisst ja alle wie das aussieht wenn z.B. ein Virenscanner läuft oder man z.B. in Windows eine Datei sucht: In der GUI wird jede Datei angezeigt, die gerade gescannt wird; analog bei der Suche, wo eben immer angezeigt wird, welches Verzeichnis gerade durchsucht wird. Vom Prinzip her genau sowas will ich jetzt auch für meine Swing GUI bauen. Aber ich weiß nicht welches da der beste Ansatz ist, deshalb möchte ich mir gerne von hier ein paar Anregungen holen.
Also letztendlich isses so, dass ich eben eine Klasse habe, welche die eigentliche Arbeit erledigt (hier z.B. das Scannen einzelner Dateien). Diese Klasse wird in meiner GUI instanziiert und dann benutzt. Die Klasse selbst weiß (bis jetzt) nichts von der GUI.
 
S

SlaterB

Gast
die Klasse muss als Thread unabhängig zur GUI laufen
und ab und zu gui.setInfo(aktuellerDateiname) oder so aufrufen,

dann wird dieser Text dort angezeigt
 
A

Arki

Gast
Ok, das klingt logisch. So hätte ich es auch gemacht, aber hätte ja sein können dass es da noch andere Möglichkeiten gibt. Da muss ich dann aber auch mit EventQueue.invokeLater usw. arbeiten oder ?
 
S

SlaterB

Gast
nönö, dein Thread ist mit der GUI gleichberechtigt,
also die GUI fordert auch ihre Zeit und kommt dann auch mal paar Millisekunden zum Zuge
wenn denn Arbeit ansteht (wie das repaint)

das dürfte klappen
 

Wildcard

Top Contributor
Arki hat gesagt.:
Da muss ich dann aber auch mit EventQueue.invokeLater usw. arbeiten oder ?
SlaterB hat gesagt.:
nönö, dein Thread ist mit der GUI gleichberechtigt,
Abhängig von dem was besagtes gui.setInfo(aktuellerDateiname) macht, muss dieser Aufruf sehr wohl mit der GUI synchronisiert werden.
SlaterB hat gesagt.:
nönö, dein Thread ist mit der GUI gleichberechtigt,
Stimmt auch nicht ganz. Der EventDispatcher-Thread genießt eine höhere Priorität als der 'Otto-Normal Thread'
 
S

SlaterB

Gast
warum erwähnst du das immer wieder?
also ich habe in 5 Jahren bei einfachen GUI noch nie irgendwo invokeLater() gebraucht!
es geht doch nur um Textfelder, TextAreas, paintComonent()-Operationen usw.,
das klappt schon
 

Wildcard

Top Contributor
Was ist besser? Ein Programm das in 96% Prozent aller Fälle funktioniert und ausgerechnet bei der Vorführung bei einem wichtigen Kunden nicht, oder ein korrektes?
Threads sind fiese kleine Biester. Wenn du ihnen nicht die nötige Aufmerksamkeit zuteil werden lässt, beißen sie dir in den Allerwertesten :wink:
 
S

SlaterB

Gast
bei den einfachen Dingen hat man erstens 100% statt 96% (oder zeige ein Gegenbeispiel?)

und das wichtige ist, dass es um Vorführung bei Kunden gar nicht geht,
sondern darum ein funktionierendes Programm zu erstellen?

ich kenne kein Lehrbuch oder Anfänger-Tutorial wo von invokeLater() die Rede ist,
schaue dir doch mal z.B. das Java-Swing-Tutorial an:

Code:
  public void actionPerformed(ActionEvent e) {
        String prefix = "You typed \"";
        if (textFieldString.equals(e.getActionCommand())) {
            JTextField source = (JTextField)e.getSource();
            actionLabel.setText(prefix + source.getText() + "\"");
        } else if (passwordFieldString.equals(e.getActionCommand())) {
            JPasswordField source = (JPasswordField)e.getSource();
            actionLabel.setText(prefix + new String(source.getPassword())
                                + "\"");
        } else if (buttonString.equals(e.getActionCommand())) {
            Toolkit.getDefaultToolkit().beep();
        }
    }
http://java.sun.com/docs/books/tutorial/uiswing/components/examples/TextSamplerDemo.java

schlägst du nun allen ernstes
Code:
RiesenKonstrukt-invokeLater() {
    actionLabel.setText(prefix + source.getText() + "\"");
}
vor? das geht doch völlig am Thema vorbei? und es funktioniert IMMER auch so
(bei den Dingen die man normalerweise so benutzt)

das ist jetzt hier in diesem Thread genauso am Thema vorbei,
aber das halte ich für recht störend/ verwirrend
 

byte

Top Contributor
Es bringt einen ja auch nicht wirklich um, einfach immer invokeLater zu benutzen. Eclipse wrapt Dir bei Bedarf per Tastenkommando ein Runnable um beliebige Statements. Dann noch fix den Aufruf davor geschrieben ... geschätzter Aufwand: 10 sec
 

Wildcard

Top Contributor
@SlaterB
Was ist denn das für ein Beispiel?
actionPerformed wird vom EventDispatcher-Thread ausgeführt, da musst du nichts synchronisieren :autsch:
 
A

Arki

Gast
Also erst mal danke für die Antworten. Prinzipiell mach ich sowas ehrlich gesagt auch immer mit invokeLater usw... also verwirrt hat mich das jetzt nicht. Wollte halt nur noch mal genauer nachfragen, und mir gings eigentlich eher ums Prinzip wie man sowas realisiert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wie realisiere ich folgendes Bild? AWT, Swing, JavaFX & SWT 2
J Wie binde ich folgendes ein? (JTabbedPane mit Button) AWT, Swing, JavaFX & SWT 6
W JavaFX Kontextmenü - wie am Besten? AWT, Swing, JavaFX & SWT 6
B GridLayout - wie am besten implementieren AWT, Swing, JavaFX & SWT 3
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
Z Wie gehe ich dieses Vorhaben am besten vor? AWT, Swing, JavaFX & SWT 3
M Wie am besten realisieren AWT, Swing, JavaFX & SWT 3
Rudolf Swing Wie testet man am besten eine GUI? AWT, Swing, JavaFX & SWT 3
T JTree Daten in DB schreiben am besten SQL AWT, Swing, JavaFX & SWT 21
R wie macht am besten ein GUI ? AWT, Swing, JavaFX & SWT 21
J Java Look And Feel- Welche gefallen euch am besten? AWT, Swing, JavaFX & SWT 12
C Was is am besten für Icon? AWT, Swing, JavaFX & SWT 2
T Funktionsplotter.nur wie am Besten ? AWT, Swing, JavaFX & SWT 6
K GUI,MVC und Oberservable.Wie implementiere ich es am besten? AWT, Swing, JavaFX & SWT 5
G Spielfeld für ein Spiel erstellen, wie am besten? AWT, Swing, JavaFX & SWT 4
M GUI-Projekt realisieren AWT, Swing, JavaFX & SWT 9
A Einfache Benutzeroberfläche wie realisieren? AWT, Swing, JavaFX & SWT 6
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
Semox Swing Shortcuts in Menü realisieren AWT, Swing, JavaFX & SWT 2
M Swing Wie AutoVervollständigen bei Kundensuche realisieren? AWT, Swing, JavaFX & SWT 11
vladimir Swing virtuelle Tastatur realisieren AWT, Swing, JavaFX & SWT 3
T Wie könne man das realisieren? AWT, Swing, JavaFX & SWT 18
G Popup eines Bildes im JTable realisieren AWT, Swing, JavaFX & SWT 3
F Listener als separate Klasse realisieren ? AWT, Swing, JavaFX & SWT 3
G Personendatenbank mit Listbox realisieren? AWT, Swing, JavaFX & SWT 9
J DB-Ausgabe realisieren? AWT, Swing, JavaFX & SWT 2
H Wie realisieren? AWT, Swing, JavaFX & SWT 2
Z Hilfe! wie kann ich das realisieren? AWT, Swing, JavaFX & SWT 3
O Stopuhr realisieren AWT, Swing, JavaFX & SWT 6
thE_29 JScrollPane: Zeilensprünge realisieren AWT, Swing, JavaFX & SWT 2
A Stundenplan realisieren AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben