Aktualisieren eines Thread?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Code:
import java.awt.*;  
import java.io.*; 
import java.net.*; 

@SuppressWarnings("serial")
public class Bild extends Frame implements Runnable
{   
	private Image image; 
	URL u1=new URL("http://10.1.9.113/jpg/image.jpg"); 

	@SuppressWarnings("deprecation")
	public Bild(String fileName) throws InterruptedException, IOException 
	{ 
		URLConnection con=u1.openConnection();  
		con.connect(); 
		u1.openConnection(); 

		
		Toolkit toolkit=Toolkit.getDefaultToolkit(); 
		image=toolkit.getImage(u1); 

		MediaTracker mediaTracker=new MediaTracker(this); 
		mediaTracker.addImage(image, 0); 
		mediaTracker.waitForID(0);

		setSize(image.getWidth(null), image.getHeight(null)); 
		setTitle(fileName); 
		
		show();
	} 

	public void paint(Graphics graphics) 
	{ 
		graphics.drawImage(image, 0, 0, null);
	} 

	public static void main(String[] args) throws InterruptedException, IOException 
	{  
		new Bild("Axiscam bei Arktis"); 
	}

	public void run() 
	{
		try 
		{
			Bild b=new Bild("Test");
		} 
		catch (InterruptedException e) 
		{
			
			e.printStackTrace();
		} 
		catch (IOException e) 
		{
			
			e.printStackTrace();
		}	
	} 
}

Code:
public class BildRunner
{
	Bild bb=new Bild("Bild");
	
	Thread t=new Thread(bb);
                t.run();
}

Der Code gibt mir von einer Netzwerkcam ein Bild in einem Fenster....nun möchte ich dieses Bild aber jede Sekunde aktualisiert haben...kann mir jmd. sagen wie ich da eine Schleife setzen muss?
Habe schon alles mögliche probiert...aber kriege dann meißt nur unzählige Threads, die sich alle nacheinander öffnen...es soll aber nur der EINE Thread stets aktualisiert werden....jemand eine Idee?
 

babuschka

Top Contributor
Wie soll das denn überhaupt funktionieren?
Rufst du den Code in run() überhaupt irgendwo auf?
Meiner Meinung noch musst du die Threads in main() starten (oder irgendwo dort, wo der Main-Thread hinkommt).

Du rufst sie aber in einer anderen Klasse auf. Wird die überhaupt irgendwo aufgerufen.
Ich bin auch kein Threadexperte im Gegenteil, ich stehe mit dem Thema auf Kriegsfuß, aber dein Code kommt mir sehr suspekt vor.

Ich weis auch nicht ob ich mit meinen Aussagen richtigliege. Vielleicht kann jemand anderes dazu noch was sagen?
 
G

Guest

Gast
Erstmal vielen Dank für den Thread.sleep-Tip...


Code:
public class BildRunner 
{
	public static void main(String[]args) throws InterruptedException, IOException
	{
		Bild bb=new Bild();
		Thread t=new Thread(bb);
		t.start();		
	}
}

Code:
public class Bild extends Frame implements Runnable
{   
	URL u1=new URL("http://10.1.9.113/jpg/image.jpg"); 
	Image image;

	public Bild() throws InterruptedException, IOException 
	{ 
		Toolkit toolkit=Toolkit.getDefaultToolkit(); 
		image=toolkit.getImage(u1); 

		MediaTracker mediaTracker=new MediaTracker(this); 
		mediaTracker.addImage(image, 0); 
		mediaTracker.waitForID(0);

		setSize(image.getWidth(null), image.getHeight(null));  
		this.setVisible(true);
		this.repaint();
	} 

	public void paint(Graphics graphics) 
	{ 
		graphics.drawImage(image, 0, 0, null);
	} 

	public void run() 
	{
		while(true)
		{
			Image image;
			
			try 
			{
				Thread.sleep(1000);
			} 
			catch (InterruptedException e1) 
			{
				e1.printStackTrace();
			}

			try 
			{
				URL u1=new URL("rtsp://10.1.9.113/jpg/image.jpg"); 
				
				Toolkit toolkit=Toolkit.getDefaultToolkit(); 
				image=toolkit.getImage(u1); 
				MediaTracker mediaTracker=new MediaTracker(this); 
				mediaTracker.addImage(image, 0); 
				mediaTracker.waitForID(0);

				setSize(image.getWidth(null), image.getHeight(null));  
				this.setVisible(true);
				this.repaint();
			} 
			catch (InterruptedException e) 
			{
				e.printStackTrace();
			} 
			catch (IOException e) 
			{	
				e.printStackTrace();
			}
		} 
	}
}

Ja, natürlich rufe ich die run-Methode auf....ich will ja das mein Programm ausführt was in der Run-Methode drin steht...das ist ja der Sinn eines Threads...mit t.start() wird aufgerufen was in public void run() steht....
Oder habe ich Deine "Frage" falsch verstanden?
Aber darum gehts auch überhaupt nicht...mein Problem ist, dass ich zwar ein Bild von der Cam kriege, jedoch ist jedes aktualisierte Bild was danach kommt genau identisch mit dem ersten... :(
Jemand einen Vorschlag, wie ich das ändern kann?
 
G

Guest

Gast
Und das mit den Thread in Main starten....weiß zwar nicht was Du damit meinst aber...
Eine Klasse sartet da wo die Main beginnt richtig?
Ein Thread startet das was in der run() steht....!!! Also braucht diese Klasse keine Main()-Methode!!! *kleiner Tip*
 
G

Guest

Gast
Aber darum gehts hier ja überhaupt nicht....starten tut er schon...keine Sorgen....und ruft auch brav das auf was in der Run()-methode steht....das Problem liegt wo anders....

Erstens wird ein Image erstellt, mittels des Toolkits wird das Image aus der Netzwerkcam über Ihre IP-Addrese festgelegt und angezeigt...das funktioniert.....
Lege ich nun eine Schleife drum rum....sehe ich zwar, dass das Fenster sich irgendwie jede Sekunde aktualisiert (flackert), aber es ist kein aktuelles Bild, sondern IMMER das was zuerst von der cam geholt wurde... :(
Wie kann das sein?
Wenn eine Schleife etwas nur wiederholt ausführt....müsste ich doch immer das aktuelle Bild bekommen?
Mir kommt es so vor als ob die Schleife zwar ausgeführt wird, das Programm sich aber sagt "nanu? schon wieder ein Bild von der IP addresse holeN?? nehm ich doch einfach das alte.... So ein shit...

WebCams ansprechen über CaptureDevice geht ja...da findet er auch eine USB-Cam zum Beispiel....
Dass ich für die Netzwerkcam "CaptureDevice" nicht anwenden kann, damit habe ich mich schon abgefunden...

Ein Image holen und das in ner Schleife laufen lassen....scheint auch nicht zu funzen....

Und über einen Client, der vom WEB-SERVER DER CAM etwas holt funzt es auch nicht...(wer Interesse an diesem Versuch hat kann gerne nach dem Quellcode fragen)...

Die cam unterstützt RTSP....lasse ich den VLC-Player laufen zeigt er mir auch wunderbar einen VideoLiveStream...

In Eclipse sagt er mir: unknown protocoll rtsp....aaaaaarrrrrggghhhhhhhhhhhhhh.....

Kann es denn so schwer sein einen Stream von der Cam abzufangen?
 
S

SlaterB

Gast
tja, immer ein Schritt nach dem anderen, das ganze hat sehr wenig mit Threads zu tun,
überhaupt am besten die ganze GUI weglassen, wenn du die Bilder auf andere Weise unterscheiden kannst,
idealerweise hätte z.B. das zweite Bild eine andere Breite,
oder zumindest andere Bildpunkte, aber wie man die nun abfragt kann ich nicht genau sagen,

wenn du bei der GUI bleibst, dann ist es vielleicht einfacher/ übersichtlicher,
den Code zum Neuladen an einen Button zu hängen statt in einen Thread

auf jeden Fall ein neues Topic mit Namen 'Bild von WebCam laden' oder so

--------

so, nach dem allgemeinen Tadel ist das ganze andererseits vielleicht auch nicht nötig:
kann es sein, dass du in der run() nur eine lokale Variable neusetzt,
während die Exemplarvariable image weiterhin das Bild aus dem Konstruktor enthält?

schlage zwei Fliegen mit einer Klappe:
wenn du den Bild-Lade-Code in eine einzelne Operation legst,
die sowohl vom Konstruktor als auch von run() aus aufgerufen wird,
dann ersparst du dir solche Fehler und doppelten Code
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing Aktualisieren eines JPanels nach Tasteneingabe AWT, Swing, JavaFX & SWT 2
A Swing Aktualisieren eines JPanels AWT, Swing, JavaFX & SWT 13
Y Swing Aktualisieren eines JPanel mit ArrayList im TableLayout AWT, Swing, JavaFX & SWT 2
R Name eines Tabs aktualisieren AWT, Swing, JavaFX & SWT 2
K Aktualisieren eines JScrollPane AWT, Swing, JavaFX & SWT 2
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
G JavaFX BarChart während der Runtime aktualisieren AWT, Swing, JavaFX & SWT 4
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Swing JLabel Verknüpfung aktualisieren AWT, Swing, JavaFX & SWT 3
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
M Muss man die ObservableList aktualisieren? AWT, Swing, JavaFX & SWT 3
B Bounds aller Panels aktualisieren AWT, Swing, JavaFX & SWT 0
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
M JavaFX Automatisches Aktualisieren der Seite AWT, Swing, JavaFX & SWT 26
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
Z jLabel von Methode aus aktualisieren AWT, Swing, JavaFX & SWT 7
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
C JavaFX TreeTableView aktualisieren AWT, Swing, JavaFX & SWT 10
R GUI Element in einer Methode aktualisieren (JTextPane) AWT, Swing, JavaFX & SWT 13
thobren JavaFX textarea nach setPrefRowCount Ansicht aktualisieren AWT, Swing, JavaFX & SWT 1
Regedit JavaFX Java Canvas hört ständig auf zu aktualisieren/malen AWT, Swing, JavaFX & SWT 3
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
A JFace/SWT: ListViewer Inhalt nach Selection in zweitem List Viewer aktualisieren! AWT, Swing, JavaFX & SWT 5
L GUI - Jpanel - Splitpane will nicht aktualisieren AWT, Swing, JavaFX & SWT 4
2 Zeit Differenz automatisch aktualisieren AWT, Swing, JavaFX & SWT 1
N JavaFX Stage aktualisieren AWT, Swing, JavaFX & SWT 5
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
O Statusleiste mit JLabel aktualisieren AWT, Swing, JavaFX & SWT 5
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
AssELAss Verzeichnis JFileChooser aktualisieren AWT, Swing, JavaFX & SWT 0
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J GUI/Random aktualisieren? AWT, Swing, JavaFX & SWT 3
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
P Swing Aktualisieren von JFrame in einem onClick-Ereignis AWT, Swing, JavaFX & SWT 11
B JTable aktualisieren AWT, Swing, JavaFX & SWT 22
K SWT DataBinding, Anzahl der Zeilen aktualisieren AWT, Swing, JavaFX & SWT 4
G JRadioButton aktualisieren nicht... AWT, Swing, JavaFX & SWT 10
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
D Swing JComboBox aktualisieren AWT, Swing, JavaFX & SWT 4
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
S Inhalt einer JComboBox aktualisieren AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
A JButton in einem Array aktualisieren AWT, Swing, JavaFX & SWT 8
Kenan89 JTable aktualisieren AWT, Swing, JavaFX & SWT 21
B Swing Fensterinhalt aktualisieren AWT, Swing, JavaFX & SWT 11
S Spezielle komponente aktualisieren AWT, Swing, JavaFX & SWT 9
V Swing JProgressBar aktualisieren AWT, Swing, JavaFX & SWT 14
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
C jTable aktualisieren AWT, Swing, JavaFX & SWT 2
M TabbpedPane Anzeige aktualisieren AWT, Swing, JavaFX & SWT 6
X Swing JTree aktualisieren AWT, Swing, JavaFX & SWT 2
P AWT Fenster aktualisieren, nachdem ich JComboBox ändere AWT, Swing, JavaFX & SWT 9
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
S JTable - Aktualisieren / Neu zeichnen. AWT, Swing, JavaFX & SWT 5
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
M Zeichnung aktualisieren AWT, Swing, JavaFX & SWT 3
D Swing JTextField aus anderer Klasse aktualisieren AWT, Swing, JavaFX & SWT 2
L GUI aktualisieren? AWT, Swing, JavaFX & SWT 4
X Tabelle während Funktionsaufruf aktualisieren AWT, Swing, JavaFX & SWT 11
V Panel/Icon aktualisieren AWT, Swing, JavaFX & SWT 10
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
M Swing Aktualisieren von laufenden Anwendungen AWT, Swing, JavaFX & SWT 10
C Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind AWT, Swing, JavaFX & SWT 3
S Swing Probleme beim Aktualisieren einer JComboBox nach Auswahländerung AWT, Swing, JavaFX & SWT 2
J JLabel aktualisieren AWT, Swing, JavaFX & SWT 8
N Swing MainWindow(JFrame) aktualisieren(neuzeichnen) repaint AWT, Swing, JavaFX & SWT 4
K Swing JTable Model aktualisieren AWT, Swing, JavaFX & SWT 2
K LayoutManager Borderlayout - NORTH aktualisieren AWT, Swing, JavaFX & SWT 10
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
K JTable aktualisieren AWT, Swing, JavaFX & SWT 9
M JFrame aktualisieren/refreshen? AWT, Swing, JavaFX & SWT 4
A Haupt JFrame inkl. aller Komponenten aktualisieren? AWT, Swing, JavaFX & SWT 3
L Swing Daten in JTable aktualisieren AWT, Swing, JavaFX & SWT 5
S Swing JTable nach einer Änderung einer Zelle komplett aktualisieren. AWT, Swing, JavaFX & SWT 10
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
H UI aktualisieren AWT, Swing, JavaFX & SWT 9
R Tab-Inhalte aktualisieren AWT, Swing, JavaFX & SWT 4
B Swing JFreeCharts echtzeit Charts bzw Aktualisieren von Charts AWT, Swing, JavaFX & SWT 8
D JTree zur richtigen Zeit aktualisieren. AWT, Swing, JavaFX & SWT 3
S JTable aktualisieren AWT, Swing, JavaFX & SWT 4
U JTable in einem Tab aktualisieren aus anderem Tab heraus initiiert AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben