我是想通过一个按钮的mouseListerner 中的clickEvent 方法中 利用前面所定义的JTextField中输入的值构建新的对象。但是总也不能通过。
提示是找不到构造方法所要的参数。
请各位救我一命,实验做到这里没办法下去了。
先谢过了。

解决方案 »

  1.   

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.awt.BorderLayout;
    import java.util.*;public class jFrame extends JFrame {    public jFrame() {
            super("进程调度模拟");
            try {
                jbInit();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }    private void jbInit() throws Exception {
            Container ct=getContentPane();
    ct.setLayout(new FlowLayout());        //int i=0;        final ArrayList al=new ArrayList();
            final Iterator ia=al.iterator();
            jLabel1.setText("进程名:");
            jLabel2.setText("运行时间:");
            //jTextField1.setText("jTextField1");
            jLabel3.setText("优先级:");
            jLabel4.setText("进程状态:");
            jTextField5.setEditable(false);
            //this.getContentPane().setLayout(flowLayout1);
            //this.getContentPane().add(jLabel1, null);
            jbtn1.addMouseListener(new MouseAdapter(){
                    public void mouseClicked(MouseEvent e)
                    {                    String th1pid=jTextField1.getText();
                        int th1priority=Integer.valueOf(jTextField3.getText());
                        int th1rtime=Integer.valueOf(jTextField2.getText());
                        int th1statu=Integer.valueOf(jTextField4.getText());                    al.add(new thread());
                        ia.next().pid=jTextField1.getText();
                        //thread th1=new thread();                   /* int i=0;
                        if(i<10)
                        {
                        th[i]=new thread();
                        th[i].pid=jTextField1.getText();
                        th[i].priority=Integer.valueOf(jTextField3.getText());
                        th[i].rtime=Integer.valueOf(jTextField2.getText());
                        th[i].statu=Integer.valueOf(jTextField4.getText());
                        i++;*/                        //initthread(th);
                            jTextField1.setText(null);
                            jTextField2.setText(null);
                            jTextField3.setText(null);
                            jTextField4.setText(null);}
                            });
            jbtn2.addMouseListener(new MouseAdapter(){
                    public void mouseClicked(MouseEvent e)
                    {
                         jTextField1.setText(null);
                         jTextField2.setText(null);
                         jTextField3.setText(null);
                         jTextField4.setText(null);                        }});
            jbtn3.addMouseListener(new MouseAdapter(){
                   public void mouseClicked(MouseEvent e)
                   {
                       try{
                        int j=0;
                        //jTextField5.setText(th[j].disp());
                    }
                    catch(Exception e1){}
                           }});        ct.add(jLabel1);
            ct.add(jTextField1);
            ct.add(jLabel2);
            ct.add(jTextField2);
            ct.add(jLabel3);
            ct.add(jTextField3);
            ct.add(jLabel4);
            ct.add(jTextField4);
            ct.add(jbtn1);
            ct.add(jbtn2);
            ct.add(jbtn3);
            ct.add(jTextField5);
            ct.add(jList1);        setSize(640,480);
            setLocation(100,100);
            setVisible(true);    }    JLabel jLabel1 = new JLabel();
        FlowLayout flowLayout1 = new FlowLayout();
        JLabel jLabel2 = new JLabel();
        JTextField jTextField1 = new JTextField(22);
        JTextField jTextField2 = new JTextField(22);
        JTextField jTextField3= new JTextField(22);
        JTextField jTextField4 = new JTextField(22);
        JTextField jTextField5 = new JTextField(55);
        JLabel jLabel3 = new JLabel();
        JLabel jLabel4 = new JLabel();
        JButton jbtn1=new JButton("添加进程");
        JButton jbtn2=new JButton("清   除");
        JButton jbtn3=new JButton("开始运行");
        JList jList1 = new JList(); /*   thread initthread(thread th[])
        {
            int i=0;
            th[i].pid=jLabel1.getText();
            th[i].priority=Integer.valueOf(jLabel3.getText());
            th[i].rtime=Integer.valueOf(jLabel2.getText());
            th[i].statu=Integer.valueOf(jLabel4.getText());
            i++;
            return th[i];    }
    */
        public static void main(String[] args)
        {
        jFrame jf=new jFrame();
        jf.setDefaultCloseOperation(
    JFrame.EXIT_ON_CLOSE);
        }
    }class Thread extends Thread
    {
            String pid;
            int rtime;
            int priority;
            int statu;        public void thread()
            {}
            public void thread(String pid,int Runtime,int priority,int statu)
            {
                    this.pid=pid;
                    this.rtime=rtime;
                    this.priority=priority;
                    this.statu=statu;
                    }        public String disp() throws Exception
            {
                    for(int i=0;i<=rtime/1000;i++)
                    {
                    //Thread.sleep(1000);                        }
                    String str="当前运行的进程为"+this.pid+"运行时间"+this.rtime/1000+"秒";
                    return str;
                    }
            void run()
            {
            
             }
    }
      

  2.   

    public void thread()
            {}
            public void thread(String pid,int Runtime,int priority,int statu)
            {
                    this.pid=pid;
                    this.rtime=rtime;
                    this.priority=priority;
                    this.statu=statu;
                    }
    这2个都不是构造函数
    构造函数没有返回值
      

  3.   

    Object obj = Class.forName(jTextField1.getText()).newInstance();