Multithreading

Status
Nicht offen für weitere Antworten.

Zapp_Branigan

Aktives Mitglied
Hallo ich habe ein Problem und zwar, dass meine Swing-Komponenten nicht mehr reagieren wenn ich gleichzeitig einen sehr rechenintensiven Prozess aufrufe (momentan eine Dauerschleife zum Test (Aufruf Z. 79). Ich möchte aber einige Daten gleichzeitig ausgeben wie z.B. eine ProgressBar oder später so etwas wie Operationen/s.
Naja ich habe natürlich die Suche benutzt und auch eine tolle Lösung gefunden:

www.java-forum.org/de/viewtopic.php?t=8101&highlight=swing+gui+friert+ein

aber ich schaffe es mit meinem Anfängerwissen einfach nicht das auf mein kleines Programm zu übertragen :(
vielleicht kann mir ja jemand von euch helfen und bitte bitte auch erläutern ich möchte es gerne verstehen.


Hier mein deletantischer Code:
Code:
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import java.awt.BorderLayout;
import java.util.Arrays;

import javax.swing.KeyStroke;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.JTextPane;
import javax.swing.JScrollBar;
import javax.swing.JTextField;

public class RubicsCube2 extends JFrame implements ActionListener {

	
	
	
	private JPanel jContentPane = null;
	private JProgressBar jProgressBar = null;
	private JLabel Fortschritt = null;
	private JButton Start = null;
	private JTextPane Ausgabe = null;
	private JScrollBar jScrollBar = null;
	private JProgressBar Schritte = null;
	private JTextField Operaration = null;
	private JTextField Geschwindigkeit = null;
	private JTextField Laufzeit = null;
	/**
	 * This method initializes jProgressBar	
	 * 	
	 * @return javax.swing.JProgressBar	
	 */
	private JProgressBar getJProgressBar() {
		if (jProgressBar == null) {
			jProgressBar = new JProgressBar();
			jProgressBar.setBounds(new java.awt.Rectangle(173,523,527,18));
			
			jProgressBar.setValue(10);
			jProgressBar.setStringPainted(true);
		}
		return jProgressBar;
	}

	/**
	 * This method initializes Start	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getStart() {
		if (Start == null) {
			Start = new JButton();
			Start.setBounds(new java.awt.Rectangle(60,26,109,28));
			Start.setText("Start");
			Start.addActionListener( this );
		}
		return Start;
	}
	
	public void actionPerformed(ActionEvent e)



	{
	        if ( e.getSource()==Start )
	        {
	        	        	
	        	Solution_Generator.Solution_Gen();
	        	
	        		
	        		jProgressBar.setValue(1+(Solution_Generator.run));
//	        		System.out.println("Nach der "+run+". Schleife:");
		      		Operaration.setText("Operation: "+ Solution_Generator.run);
		      		run();
	        	
	      				
	    	 }
	        
	
	}
	
	
	

	/**
	 * This method initializes Ausgabe	
	 * 	
	 * @return javax.swing.JTextPane	
	 */
	private JTextPane getAusgabe() {
		if (Ausgabe == null) {
			Ausgabe = new JTextPane();
			Ausgabe.setBounds(new java.awt.Rectangle(539,62,176,411));
			
			Ausgabe.setContentType("text/html");
		}
		return Ausgabe;
	}

	/**
	 * This method initializes jScrollBar	
	 * 	
	 * @return javax.swing.JScrollBar	
	 */
	private JScrollBar getJScrollBar() {
		if (jScrollBar == null) {
			jScrollBar = new JScrollBar();
			jScrollBar.setBounds(new java.awt.Rectangle(84,376,229,19));
			jScrollBar.setOrientation(javax.swing.JScrollBar.HORIZONTAL);
		}
		return jScrollBar;
	}

	/**
	 * This method initializes Schritte	
	 * 	
	 * @return javax.swing.JProgressBar	
	 */
	private JProgressBar getSchritte() {
		if (Schritte == null) {
			Schritte = new JProgressBar();
			Schritte.setBounds(new java.awt.Rectangle(763,41,18,460));
			Schritte.setValue(50);
			Schritte.setOrientation(javax.swing.JProgressBar.VERTICAL);
		}
		return Schritte;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getOperaration() {
		if (Operaration == null) {
			Operaration = new JTextField();
			Operaration.setBounds(new java.awt.Rectangle(171,481,142,19));
		}
		return Operaration;
	}

	/**
	 * This method initializes Geschwindigkeit	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getGeschwindigkeit() {
		if (Geschwindigkeit == null) {
			Geschwindigkeit = new JTextField();
			Geschwindigkeit.setBounds(new java.awt.Rectangle(120,136,101,19));
			Geschwindigkeit.setText("geschwindigkeit");
		}
		return Geschwindigkeit;
	}

	/**
	 * This method initializes Laufzeit	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getLaufzeit() {
		if (Laufzeit == null) {
			Laufzeit = new JTextField();
			Laufzeit.setBounds(new java.awt.Rectangle(237,136,196,19));
			Laufzeit.setText("Laufzeit");
		}
		return Laufzeit;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		RubicsCube2 application = new RubicsCube2();
		application.show();
		
		
//		Eingaben Check
		
		//Hier sollte eine Prüffunktion entstehen
		
		
		
		//Ausgabe der Eingaben
		
		
		
    	 
		
		
	}

	/**
	 * This is the default constructor
	 */
	public RubicsCube2() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setBounds(new java.awt.Rectangle(0,0,800,600));
		this.setContentPane(getJContentPane());
		this.setTitle("Application");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			Fortschritt = new JLabel();
			Fortschritt.setBounds(new java.awt.Rectangle(90,522,76,18));
			Fortschritt.setText("Fortschritt:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJProgressBar(), null);
			jContentPane.add(Fortschritt, null);
			jContentPane.add(getStart(), null);
			jContentPane.add(getAusgabe(), null);
			jContentPane.add(getJScrollBar(), null);
			jContentPane.add(getSchritte(), null);
			jContentPane.add(getOperaration(), null);
			jContentPane.add(getGeschwindigkeit(), null);
			jContentPane.add(getLaufzeit(), null);
		}
		return jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
 
G

Guest

Gast
Da kann ich ebenfalls nur auf die "Java-Insel" verweisen. Ich habe mit dem Beispiel von dort (Callable - das Array sortieren) einen Fortschrittsbalken "gekoppelt".
Ah ja - falls Dir was zu meinem Problem (Rückgabe mehrere Threads) einfällt - schreiben! :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
buzzlightyeah multithreading Java Basics - Anfänger-Themen 4
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
I Threads Multithreading, Producer/Consumer, notify() Java Basics - Anfänger-Themen 6
M Mehre Dateien parallel kopieren mit Multithreading Java Basics - Anfänger-Themen 8
kilopack15 Verzweiflung wegen Berechnung mit Multithreading Java Basics - Anfänger-Themen 1
P Multithreading in Java Java Basics - Anfänger-Themen 9
N Threads Read-Modify-Write Problem bei Multithreading (philosopher dining problem) Java Basics - Anfänger-Themen 5
R Threads Multithreading Java Basics - Anfänger-Themen 15
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K Frage bzgl. Multithreading Java Basics - Anfänger-Themen 5
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
C Multithreading, Methoden sichern Java Basics - Anfänger-Themen 5
P Hilfe bei MultiThreading; Einige Fragen. Java Basics - Anfänger-Themen 14
S OOP Multithreading Java Basics - Anfänger-Themen 5
B Multithreading Java Basics - Anfänger-Themen 5
0din Multithreading und stop Java Basics - Anfänger-Themen 5
P Singletons und Multithreading Java Basics - Anfänger-Themen 11
U Anfängerfrage - Multithreading Java Basics - Anfänger-Themen 8
H Multithreading Java Basics - Anfänger-Themen 7
M Multithreading Java Basics - Anfänger-Themen 18
I Multithreading (Prüfungsvorbereitung) Java Basics - Anfänger-Themen 6
G UI friert bei Multithreading ein Java Basics - Anfänger-Themen 3
J Multithreading mit einer TextArea Java Basics - Anfänger-Themen 29
JFeel-x Multithreading in awt Java Basics - Anfänger-Themen 2
L NullpointerException wegen wahrscheinlichem Multithreading Java Basics - Anfänger-Themen 4
P Multithreading Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben