Wielowątkowość+SwingWorker

22 04 2008

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.SwingUtilities.*;

public class LiczRandom extends JFrame {
JTextField AA= new JTextField(”0″,7);
JTextField BB= new JTextField(”0″,7);
JButton button= new JButton(”Licz”);
JTextField aa= new JTextField(”0″,7);
JTextField bb= new JTextField(”0″,10);

public static void main(String args[]) {
new LiczRandom();
}

class Licz implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(isDouble(AA.getText()) && isDouble(BB.getText())) {
Double Aa= new Double(AA.getText());
Double Bb= new Double(BB.getText());
Double sumaAB= Aa + Bb;
aa.setText(sumaAB.toString());
Double bValue= new Double(bb.getText());
bValue+= sumaAB;
bb.setText(bValue.toString());
}
else {
aa.setText(”policz se sam”);
}
}
}

SwingWorker worker = new SwingWorker() {
public Object construct() {
bb.setText(”0″.toString());
boolean sprawdz = true;
while(sprawdz) {
try {
TimeUnit.SECONDS.sleep(1);
}
catch (InterruptedException e) {
}

Double bValue= new Double(bb.getText());
bValue= ((bValue + Math.random()) * 0.5);
bb.setText(bValue.toString());
}
return true;
}
};

public LiczRandom() {
super();
setTitle(”Uroki wielowatkowosci”);
setSize(600,50);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
Container okienko = getContentPane();
button.addActionListener(new Licz());
okienko.add(AA);
okienko.add(BB);
okienko.add(button);
okienko.add(aa);
okienko.add(bb);
worker.start();
setVisible(true);
}

public boolean isDouble(String xyz) {
try {
Double.parseDouble(xyz);
return true;
}
catch(NumberFormatException e) {
return false;
}
}
}


Operacje

Informacja

Dodaj komentarz

Możesz użyć tych tagów : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>