读书人

编了一个程序有两个异常不知道如何修改

发布时间: 2012-02-25 10:01:49 作者: rapoo

编了一个程序有两个错误不知道怎么修改,请各位大虾帮帮忙~
代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MainFrame extends JFrame implements Runnable{
JPanel panel = new JPanel(new BorderLayout());
JPanel panel1 = new JPanel(new GridLayout(3,2));
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel(new GridLayout(2,3));
JLabel label1 = new JLabel( "生产产品的时间间隔: ");
JLabel label2 = new JLabel( "最多存放产品数量: ");
JLabel label3 = new JLabel( "消费产品的时间间隔: ");
JTextField textField1 = new JTextField(10);
JTextField textField2 = new JTextField(10);
JTextField textField3 = new JTextField(10);
JLabel progressLabel = new JLabel( "生产消费进度表: ");
JProgressBar progressBar = new JProgressBar(0,Integer.parseInt(textField2.getText()));
JLabel produceLabel = new JLabel( "生产: ");
JLabel customerLabel = new JLabel( "消费: ");
JButton ProducerButton_start = new JButton( "启动 ");
JButton ProducerButton_suspend = new JButton( "暂停 ");
JButton CustomerButton_start = new JButton( "启动 ");
JButton CustomerButton_suspend = new JButton( "暂停 ");
Thread producer_thread = new Thread(this);
Thread customer_thread = new Thread(this);
Timer producer_timer;
Timer customer_timer;
int x_size,y_size;

public MainFrame(){
setSize(300, 350);
x_size = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth());
y_size = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight());
setLocation((x_size - 300) / 2, (y_size - 350) / 2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1.add(label1);
panel1.add(textField1);
panel1.add(label2);
panel1.add(textField2);
panel1.add(label3);
panel1.add(textField3);
panel2.add(progressLabel);
panel2.add(progressBar);
panel3.add(produceLabel);
panel3.add(ProducerButton_start);
panel3.add(ProducerButton_suspend);
panel3.add(customerLabel);
panel3.add(CustomerButton_start);


panel3.add(CustomerButton_suspend);
panel.add(panel1, BorderLayout.NORTH);
panel.add(panel2, BorderLayout.CENTER);
panel.add(panel3, BorderLayout.SOUTH);
ProducerButton_start.addActionListener(new ProducerStartAction());
ProducerButton_suspend.addActionListener(new ProducerSuspendAction());
CustomerButton_start.addActionListener(new CustomerStartAction());
CustomerButton_suspend.addActionListener(new CustomerSuspendAction());

setContentPane(panel);
setVisible(true);
setResizable(false);
}

class ProducerStartAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(ProducerButton_start.getText().equals( "启动 ")){
producer_thread.start();
ProducerButton_start.setText( "停止 ");
}
if(ProducerButton_start.getText().equals( "停止 ")){
producer_thread.interrupt();
ProducerButton_start.setText( "启动 ");
}
}
}

class ProducerSuspendAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(ProducerButton_suspend.getText().equals( "暂停 ")){
producer_thread.suspend();
ProducerButton_suspend.setText( "恢复 ");
}
if(ProducerButton_suspend.getText().equals( "恢复 ")){
producer_thread.resume();
ProducerButton_suspend.setText( "暂停 ");
}
}
}

class CustomerStartAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(CustomerButton_start.getText().equals( "启动 ")){


customer_thread.start();
CustomerButton_start.setText( "停止 ");
}
if(CustomerButton_start.getText().equals( "停止 ")){
customer_thread.interrupt();
CustomerButton_start.setText( "启动 ");
}
}
}

class CustomerSuspendAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(CustomerButton_suspend.getText().equals( "暂停 ")){
customer_thread.suspend();
CustomerButton_suspend.setText( "恢复 ");
}
if(CustomerButton_suspend.getText().equals( "恢复 ")){
customer_thread.resume();
CustomerButton_suspend.setText( "暂停 ");
}
}
}

public void run() {
if(Thread.currentThread() == producer_thread){
producer_timer = new javax.swing.Timer(Integer.parseInt(textField1.getText()),new ProducerProgressAction());
producer_timer.start();
}
if(Thread.currentThread() == customer_thread) {
customer_timer = new javax.swing.Timer(Integer.parseInt(textField1.getText()),new CustomerProgressAction());
customer_timer.start();
}
}


class ProducerProgressAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(progressBar.getValue() < progressBar.getMaximum())
progressBar.setValue(progressBar.getValue() + 1);
else {
producer_timer.stop();
producer_timer = null;
}
}
}

class CustomerProgressAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(progressBar.getValue() < progressBar.getMaximum())
progressBar.setValue(progressBar.getValue() - 1);
else {
customer_timer.stop();
customer_timer = null;
}
}
}

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
new MainFrame();
}
}


[解决办法]
是你的格式转换出错了啊
把字符转换成数字的时候出错

读书人网 >J2SE开发

热点推荐