Zum neuzeichnen wirklich zwingen

Status
Nicht offen für weitere Antworten.
L

lumpeh

Gast
hio
ich habe folgendes Problem
Ich habe eine Suche auf einer Datenbasis implementiert und möchte, wenn der User auf "suche "klickt, der Suchen button für die Dauer der suche inaktiv wird.
Meine Suche wird in einem anderen Thread durchgeführt.
Nun habe ich folgendes (vereinfacht) geschrieben:

.
.
.

(in meinem Extra SearchThread)
MainThread.Button.setEnabled(false);
suche();
MainThread.Button.setEnabled(true);


.
.


nun sucht er und wenn die Suche fertig ist, setzt er den Button auf disabled und direkt wieder enabled..

irgendwie muss ich es erzwingen, dass er sofort neuzeichnet? Mit validate und repaint funktioniert es nicht..

jemand ne idee?
 
S

SlaterB

Gast
Code:
public class GUI extends JFrame {

	public GUI() {

		final JButton b = new JButton("Button");
		b.setBackground(Color.GREEN);
		b.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				b.setEnabled(false);
				b.setBackground(Color.RED);
				new Thread(new Runnable() {

					public void run() {
						try {
							Thread.sleep(3000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
						b.setEnabled(true);
						b.setBackground(Color.GREEN);
					}
				}).start();
			}

		});

		getContentPane().add(b);
		setSize(400, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args) {
		new GUI();
	}
}
funktioniert doch..

bist du dir sicher mit dem separaten Thread?
rufst du auch start auf und nicht run oder solche Späße?
reagiert die GUI während der Thread läuft?
 
L

lumpeh

Gast
bin grade etwas verwirrt

also meine Suche Klasse "extends thread"

und wenn ich dann im Mainthread Suche suche = new Suche() mache, dann erstellt er nen neuen thread oder?
habe zwar "run" überschrieben, aber die methode brauche ich garnicht, da ich die suche über spezielle Methioden (sucheArtist, suche Titel usw) realisiert habe.
ich mache das dann so:

Suche suche = new Suche() ;
ergebnis = suche.sucheTitel();
 
S

SlaterB

Gast
so benutzt du das Thread-Objekt als ganz normales Objekt,
die Arbeit wird also vom AWT-Thread gemacht, die GUI solange blockiert

du musst dich schon an die genauen Anweisungen halten, um einen Thread zu verwenden,
siehe mein Beispiel oder ein Lehrbuch deiner Wahl

- run() implementieren
- start() aufrufen
 
L

lumpeh

Gast
jo das hab ich irgendwie falsch verstanden ;)

werde das jetzt mal umändern, dass es in einem richtigen thread läuft
danke für die hilfe :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A MouseMotionListener - wie Mausverfolgung und Neuzeichnen realisieren? Java Basics - Anfänger-Themen 12
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
U Neuzeichnen eines JPanels Java Basics - Anfänger-Themen 17
G Neuzeichnen eines Strings Java Basics - Anfänger-Themen 3
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
J punkte verschwinden beim neuzeichnen neuer punkte Java Basics - Anfänger-Themen 11
M Grafik neuzeichnen Java Basics - Anfänger-Themen 8
G JTable das ewige neuzeichnen verbieten? Java Basics - Anfänger-Themen 7
G Neuzeichnen des Rechtecks Java Basics - Anfänger-Themen 8
M Neuzeichnen eines Dialogs Java Basics - Anfänger-Themen 2
D Neuzeichnen eines Bildes in einer Komponente Java Basics - Anfänger-Themen 3
F Neuzeichnen eines JDialoges Java Basics - Anfänger-Themen 7
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
M Methoden Fehler und finde die Lösung nicht wirklich Java Basics - Anfänger-Themen 6
J Haben Chars wirklich keine KeyCodes? Java Basics - Anfänger-Themen 12
B Schlüsselworte this - immer oder nur wenn wirklich notwendig? Java Basics - Anfänger-Themen 9
T TCP, Empfang nur wenn wirklich etwas kommt Java Basics - Anfänger-Themen 6
L Hashtable nicht wirklich geeignet für mein Vorhaben? Java Basics - Anfänger-Themen 3
D ist das wirklich ein fehler? Java Basics - Anfänger-Themen 6
-horn- Runden auf x-Stellen wirklich nur so umständlich? Java Basics - Anfänger-Themen 9
F Was ist Graphics g wirklich? Java Basics - Anfänger-Themen 5
M wait() sleep() geht nicht wirklich Java Basics - Anfänger-Themen 3
G Interfaces - Müssen wirklich alle Methoden implement. werden Java Basics - Anfänger-Themen 8
T Java wirklich gut zum programmieren lernen? Java Basics - Anfänger-Themen 43
ven000m Java - wirklich open Source? Java Basics - Anfänger-Themen 2
A Java wirklich das richtige? Java Basics - Anfänger-Themen 20
M Einen Vector wirklich kopieren WIE GEHT DAS ??? Java Basics - Anfänger-Themen 7
Kotelettklopfer Variablen Double zwingen Ganzzahlen mit 2 Nachkommastellen auszugeben Java Basics - Anfänger-Themen 10
C Methoden zwingen abwechselnd aufrufen Java Basics - Anfänger-Themen 8
D Kann man java zu UTF8 zwingen? Java Basics - Anfänger-Themen 3
S JTable in GridBagLayout zwingen Java Basics - Anfänger-Themen 2
L programm zum warten zwingen Java Basics - Anfänger-Themen 4
J FlowLayout zum Umburch zwingen Java Basics - Anfänger-Themen 9
leifg Klasse per Interfaces zwingen bestimmte Methoden zu überschr Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben