Source Code : Swing and Thread for length operation
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
Swing and Thread for length operation

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class SwingLengthyOperation extends JPanel {
private JButton searchBn = new JButton("Search");
private JButton cancelBn = new JButton("Cancel Search");
private JLabel balanceL = new JLabel();
private volatile Thread lookupThread;
public SwingLengthyOperation() {
cancelBn.setEnabled(false);
JPanel innerButtonP = new JPanel();
innerButtonP.setLayout(new GridLayout(1, -1, 5, 5));
innerButtonP.add(searchBn);
innerButtonP.add(cancelBn);
JPanel buttonP = new JPanel();
buttonP.setLayout(new FlowLayout(FlowLayout.CENTER));
buttonP.add(innerButtonP);
JLabel balancePrefixL = new JLabel("Account Balance:");
JPanel balanceP = new JPanel();
balanceP.setLayout(new FlowLayout(FlowLayout.CENTER));
balanceP.add(balancePrefixL);
balanceP.add(balanceL);
JPanel northP = new JPanel();
northP.setLayout(new GridLayout(-1, 1, 5, 5));
northP.add(buttonP);
northP.add(balanceP);
setLayout(new BorderLayout());
add(northP, BorderLayout.NORTH);
searchBn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
search();
}
});
cancelBn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cancelSearch();
}
});
}
private void search() {
ensureEventThread();
searchBn.setEnabled(false);
cancelBn.setEnabled(true);
balanceL.setText("SEARCHING ...");
lookupAsync();
}
private void lookupAsync() {
Runnable lookupRun = new Runnable() {
public void run() {
String bal = lookupBalance();
setBalanceSafely(bal);
}
};
lookupThread = new Thread(lookupRun, "lookupThread");
lookupThread.start();
}
private String lookupBalance() {
try {
Thread.sleep(5000);
return "1,234.56";
} catch (InterruptedException x) {
return "SEARCH CANCELLED";
}
}
private void setBalanceSafely(String newBal) {
final String newBalance = newBal;
Runnable r = new Runnable() {
public void run() {
try {
setBalance(newBalance);
} catch (Exception x) {
x.printStackTrace();
}
}
};
SwingUtilities.invokeLater(r);
}
private void setBalance(String newBalance) {
ensureEventThread();
balanceL.setText(newBalance);
cancelBn.setEnabled(false);
searchBn.setEnabled(true);
}
private void cancelSearch() {
ensureEventThread();
cancelBn.setEnabled(false);
if (lookupThread != null) {
lookupThread.interrupt();
}
}
private void ensureEventThread() {
if (SwingUtilities.isEventDispatchThread()) {
return;
}
throw new RuntimeException("only the event "
+ "thread should invoke this method");
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setContentPane(new SwingLengthyOperation());
f.setSize(400, 150);
f.setVisible(true);
}
}
Thank with us