⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainpanel.java

📁 主要功能:对五条道路的车辆进行控制
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
         g.drawImage(p1,580,349,this);        }         else{           g.drawImage(p2,580,349,this);        }    } public void addSometing(){            setLayout(null);                JButton Jbegin = new JButton(playIcon);        Jbegin.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent event)            {                if(Player==2){                fivejunct = new TrafficControl(onetime,traffic);                 afivejunct=new Thread(fivejunct);                afivejunct.setPriority(Thread.MAX_PRIORITY);                afivejunct.start();                }                Player=0;                fivejunct.setPlayer(Player);                            }        });                        JButton JStop = new JButton(stopIcon);        JStop.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent event)            {                if(Player!=2)                {                    Player=1;                    fivejunct.setPlayer(Player);                }            }        });                JButton JEnd = new JButton(endIcon);                JEnd.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent event)            {                stopPlay();                        }        });                 JButton setFlowButton = new JButton("设置流量");                setFlowButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent event)            {int t;                for(int i=0;i<20;i++){                       if(i%4>=i/4)t=i%4+1;            else t=i%4;            setFlowFrame.setFlowPanel.flow[i].setText(Float.toString(traffic[i/4][t]));                setFlowFrame.setVisible(true);                }            }        });        ChangeListener listener = new ChangeListener(){            public void stateChanged(ChangeEvent event)            {                JSlider source = (JSlider) event.getSource();                if(source.getValue()>=4)                    onetime=1000>>(source.getValue()-4);                else                    onetime=1000<<(4-source.getValue());                                fivejunct.setOnetime(onetime);                createCar.setonetime(onetime);            }        };        JSlider slider = new JSlider(0,8,4);        slider.setPaintTicks(true);        slider.setPaintLabels(true);        slider.setMajorTickSpacing(1);        slider.setBackground(Color.LIGHT_GRAY);        slider.setSnapToTicks(true);        JPanel pl = new JPanel();        slider.addChangeListener(listener);        Dictionary<Integer,Component> labelTable = new Hashtable<Integer,Component>();        labelTable.put(0, new JLabel("1/16X"));        labelTable.put(1, new JLabel("1/8X"));        labelTable.put(2, new JLabel("1/4X"));        labelTable.put(3, new JLabel("1/2X"));        labelTable.put(4, new JLabel("1X"));        labelTable.put(5, new JLabel("2X"));        labelTable.put(6, new JLabel("4X"));        labelTable.put(7, new JLabel("8X"));        labelTable.put(8, new JLabel("16X"));        slider.setLabelTable(labelTable);        pl.setBackground(new Color(45,57,64));        pl.setBounds(525,0,274,129);        pl.setLayout(new BorderLayout());        pl.add(slider,BorderLayout.NORTH);        JPanel p2=new JPanel();        p2.add(Jbegin);        p2.add(JStop);        p2.add(JEnd);        pl.add(p2);        pl.add(setFlowButton,BorderLayout.SOUTH);                this.add(pl);}public void stopPlay(){                Player=2;                fivejunct.setPlayer(Player);                fivejunct.resetTrafficLight();                afivejunct.stop();}public void setTraffic(float[][] aTraffic){    traffic=aTraffic.clone();}private void initCar(){    int temp;    Car preCar;    createCar=new CreateCar(this,onetime,traffic);    Thread t=new Thread(createCar);    //System.out.println(Integer.toString(t.getPriority()));    t.setPriority(6);    t.start();}private Image getImg(int i,int j){    int[][] r=fivejunct.getTrafficLight();    if(i==0){        if(j==1){            if(r[i][j]==0)return g6;            else if(r[i][j]==1)return y6;            else if(r[i][j]==2)return r6;        }        else if(j==2){            if(r[i][j]==0)return g0;            else if(r[i][j]==1)return y0;            else if(r[i][j]==2)return r0;        }        else if(j==3){            if(r[i][j]==0)return g7;            else if(r[i][j]==1)return y7;            else if(r[i][j]==2)return r7;        }        else if(j==4){            if(r[i][j]==0)return g1;            else if(r[i][j]==1)return y1;            else if(r[i][j]==2)return r1;        }    }    else if(i==1){        if(j==0){            if(r[i][j]==0)return g2;            else if(r[i][j]==1)return y2;            else if(r[i][j]==2)return r2;        }        else if(j==2){            if(r[i][j]==0)return g0;            else if(r[i][j]==1)return y0;            else if(r[i][j]==2)return r0;        }        else if(j==3){            if(r[i][j]==0)return g1;            else if(r[i][j]==1)return y1;            else if(r[i][j]==2)return r1;        }        else if(j==4){            if(r[i][j]==0)return g4;            else if(r[i][j]==1)return y4;            else if(r[i][j]==2)return r4;        }    }    else if(i==2){        if(j==0){            if(r[i][j]==0)return g2;            else if(r[i][j]==1)return y2;            else if(r[i][j]==2)return r2;        }        else if(j==1){            if(r[i][j]==0)return g3;            else if(r[i][j]==1)return y3;            else if(r[i][j]==2)return r3;        }        else if(j==3){            if(r[i][j]==0)return g1;            else if(r[i][j]==1)return y1;            else if(r[i][j]==2)return r1;        }        else if(j==4){            if(r[i][j]==0)return g4;            else if(r[i][j]==1)return y4;            else if(r[i][j]==2)return r4;        }    }     else if(i==3){        if(j==0){            if(r[i][j]==0)return g5;            else if(r[i][j]==1)return y5;            else if(r[i][j]==2)return r5;        }        else if(j==1){            if(r[i][j]==0)return g3;            else if(r[i][j]==1)return y3;            else if(r[i][j]==2)return r3;        }        else if(j==2){            if(r[i][j]==0)return g0;            else if(r[i][j]==1)return y0;            else if(r[i][j]==2)return r0;        }        else if(j==4){            if(r[i][j]==0)return g2;            else if(r[i][j]==1)return y2;            else if(r[i][j]==2)return r2;        }    }    else if(i==4){        if(j==0){            if(r[i][j]==0)return g3;            else if(r[i][j]==1)return y3;            else if(r[i][j]==2)return r3;        }        else if(j==1){            if(r[i][j]==0)return g6;            else if(r[i][j]==1)return y6;            else if(r[i][j]==2)return r6;        }        else if(j==2){            if(r[i][j]==0)return g0;            else if(r[i][j]==1)return y0;            else if(r[i][j]==2)return r0;        }        else if(j==3){            if(r[i][j]==0)return g1;            else if(r[i][j]==1)return y1;            else if(r[i][j]==2)return r1;        }    }    return null;}ImageIcon Icon,playIcon,stopIcon,endIcon;Image img,background,car0,car60,car90,car120,car180,car240,car270,car300,        r0,r1,r2,r3,r4,r5,r6,r7,y0,y1,y2,y3,y4,y5,y6,y7,g0,g1,g2,g3,g4,g5,g6,g7,        end,end30,end90,end330,end_2,end30_2,end90_2,end330_2,p1,p2;public double x=400.0,y=500.0;public double[] angel={240,180,90,0,300}; Car c;public TrafficControl fivejunct;public CreateCar createCar;private Image[][] l=new Image[8][3];public ArrayList[] queue=new ArrayList[25];public int Player=2;//播放器状态public int onetime=1000;//单位时间float[][] traffic=new float[5][5];Thread afivejunct;public FlowFrame setFlowFrame;public Point[] turn={new Point(0,0),new Point(296,247),new Point(409,220),new Point(421,310),new Point(397,397)//0,2  0,4                    ,new Point(227,332),new Point(0,0),new Point(386,223),new Point(0,0),new Point(354,309)                    ,new Point(318,223),new Point(298,180),new Point(0,0),new Point(362,181),new Point(341,218)                    ,new Point(333,247),new Point(1000,1000),new Point(453,201),new Point(0,0),new Point(376,245)                    ,new Point(268,369),new Point(418,225),new Point(432,208),new Point(502,333),new Point(0,0)};public Point[] begin={new Point(0,0),new Point(168,600),new Point(187,600),new Point(211,600),new Point(237,600),new Point(0,332),new Point(0,0),new Point(0,268),new Point(0,288),new Point(0,310),new Point(319,0),new Point(297,0),new Point(0,0),new Point(361,0),new Point(340,0),new Point(800,226),new Point(800,204),new Point(800,182),new Point(0,0),new Point(800,247),new Point(612,600),new Point(632,600),new Point(658,600),new Point(683,600),new Point(0,0),};public Point[] stop={new Point(0,0),new Point(262,413),new Point(277,418),new Point(296,426),new Point(315,433),new Point(166,334),new Point(0,0),new Point(166,273),new Point(166,291),new Point(166,311),new Point(320,130),new Point(298,130),new Point(0,0),new Point(365,130),new Point(345,130),new Point(583,228),new Point(583,207),new Point(583,187),new Point(0,0),new Point(583,248),new Point(514,419),new Point(529,408),new Point(548,399),new Point(568,389),new Point(0,0)};}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -