Displaying Source Code(s)
|
|
JProgressbar -- Sum of 'n' Numbers
--------------------------------------------------------------------------------
Description : A demonstration of JProgress bar which computes
and shows the progress of Sum of 'n' numbers.
/*
* <Applet code=TJProgressBar width=400 height=100>
* </Applet>
*/
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class TJProgressBar extends JApplet {
Container container = null;
JButton startButton, stopButton;
JTextField inputTextField, outputTextField;
JProgressBar pBar = null;
Timer timer = null;
static int sum = 0;
static int counter = 0;
public void init() {
// 1. Get the handle on the content pane and
// assign the grid layout.
container = this.getContentPane();
container.setLayout(new GridLayout(3,1));
// 2. Add a horizontal box to the container.
Box hbox1 = Box.createHorizontalBox();
container.add(hbox1);
// 3. Add labels and input and output text fields
// to the horizontal box.
hbox1.add(Box.createHorizontalGlue());
JLabel label1 = new JLabel("Sum of first ", JLabel.LEFT);
label1.setFont(new Font("Dialog", Font.PLAIN, 15));
hbox1.add(label1);
inputTextField = new JTextField("100", 4);
hbox1.add(inputTextField);
JLabel label2 = new JLabel(" numbers is ", JLabel.LEFT);
label2.setFont(new Font("Dialog", Font.PLAIN, 15));
hbox1.add(label2);
outputTextField = new JTextField(10);
hbox1.add(outputTextField);
hbox1.add(Box.createHorizontalGlue());
// 4. Add another horizontal box to the container.
Box hbox2 = Box.createHorizontalBox();
container.add(hbox2);
// 5. Add Start and Stop buttons to the container.
startButton = new JButton("Start");
startButton.addActionListener(new ButtonListener());
hbox2.add(Box.createHorizontalGlue());
hbox2.add(startButton);
hbox2.add(Box.createHorizontalGlue());
stopButton = new JButton("Stop");
stopButton.addActionListener(new ButtonListener());
hbox2.add(Box.createHorizontalGlue());
hbox2.add(stopButton);
hbox2.add(Box.createHorizontalGlue());
// 6. Create and add a progress bar to the remaining
// display area.
pBar = new JProgressBar();
pBar.setStringPainted(true);
Border border = BorderFactory.createLineBorder(Color.red, 2);
pBar.setBorder(border);
pBar.setBackground(Color.white);
pBar.setForeground(Color.blue);
pBar.setMinimum(0);
pBar.setMaximum(Integer.parseInt(inputTextField.getText()));
container.add(pBar);
// 7. Create a timer object.
timer = new Timer(0, new TimerListener());
}
// 8. Timer listener that computes the sum of natural numbers,
// indicates the computation progress, and displays the result.
class TimerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (Integer.parseInt(inputTextField.getText())> 0){
counter++;
sum = sum+counter;
pBar.setValue(counter);
outputTextField.setText(Integer.toString(sum));
}
else {
outputTextField.setText("0");
}
if (counter >= Integer.parseInt(inputTextField.getText()))
timer.stop();
}
}
// 9. Button listener that actually starts or stops the
// process.
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
if (button.getText() == "Start") {
outputTextField.setText("");
if (inputTextField.getText() != " ") {
pBar.setMaximum(Integer.parseInt(
inputTextField.getText()));
sum = 0;
counter = 0;
timer.start();
}
}
else if (button.getText() == "Stop") {
timer.stop();
outputTextField.setText("");
sum = 0;
counter = 0;
pBar.setValue(0);
}
}
}
} |
|
|