001package demo;
002import java.awt.Color;
003import java.awt.GridLayout;
004import java.awt.event.ActionEvent;
005import java.awt.event.ActionListener;
006 
007import javax.swing.ButtonGroup;
008import javax.swing.ImageIcon;
009import javax.swing.JButton;
010import javax.swing.JFrame;
011import javax.swing.JLabel;
012import javax.swing.JMenu;
013import javax.swing.JMenuBar;
014import javax.swing.JMenuItem;
015import javax.swing.JRadioButtonMenuItem;
016 
017public class Puzzle extends JFrame implements Runnable{
018    JMenuBar jmBar;
019    JMenu  menu,menuHelp,menuSelect,menuChange,menuRank;
020    JMenuItem itemStart,itemExit,itemSelect,itemView;
021    JRadioButtonMenuItem jrbm_change[]=new JRadioButtonMenuItem[4];
022    JRadioButtonMenuItem jrbm_rank[]=new JRadioButtonMenuItem[3];
023    MainPanel panel;
024    String path;
025    int pattern=3;
026    JLabel jl_time;
027    JLabel jl_count;
028    long startTime;
029    long endTime;
030    public Puzzle(){
031         
032        //初始化菜单项
033        jmBar=new  JMenuBar();
034        menu=new  JMenu("菜单(M)");
035        menuHelp=new JMenu("帮助(H)");
036        menuSelect=new JMenu("选择(S)");
037        itemStart=new  JMenuItem("开始(S)");
038        itemExit=new JMenuItem("退出(Z)");
039        menuChange=new JMenu("图片更换");
040        menuRank=new JMenu("等级(R)");
041        itemView=new JMenuItem("查看背景(V)");
042        jl_time=new JLabel("时间:");
043        jl_count=new JLabel("步数:");
044         
045        jl_time.setForeground(Color.RED);
046        jl_count.setForeground(Color.RED);
047         
048        //添加图片选择按钮组
049        ButtonGroup groupChange=new ButtonGroup();
050        for(int i=0;i<jrbm_change.length;i++){
051            jrbm_change[i]=new JRadioButtonMenuItem("0"+(i+1)+".jpg");
052            groupChange.add(jrbm_change[i]);
053            menuChange.add(jrbm_change[i]);
054        }
055        jrbm_change[0].setSelected(true);
056        setPath();
057        
058        //添加等级选择按钮组
059        ButtonGroup groupRank=new ButtonGroup();
060        String content;
061        for(int i=0;i<jrbm_rank.length;i++){
062            if(i==0)      content=new String("简单");
063            else if(i==1) content=new String("普通");
064            else          content=new String("复杂");
065            jrbm_rank[i]=new JRadioButtonMenuItem(content);
066            groupRank.add(jrbm_rank[i]);
067            menuRank.add(jrbm_rank[i]);
068        }
069        jrbm_rank[0].setSelected(true);
070        setPattern();
071         
072        menu.add(itemStart);
073        menu.add(itemView);
074        menu.add(itemExit);
075        menuSelect.add(menuChange);
076        menuSelect.add(menuRank);
077        jmBar.add(menu);
078        jmBar.add(menuSelect);
079        jmBar.add(menuHelp);
080        jmBar.add(new JLabel("                          "));
081        jmBar.add(jl_time);
082        jmBar.add(new JLabel("         "));
083        jmBar.add(jl_count);
084        this.setJMenuBar(jmBar);
085         
086         
087         
088        itemStart.addActionListener(new ActionListener(){
089            @Override
090            public void actionPerformed(ActionEvent e) {
091                breakState();
092            }
093        });
094        itemView.addActionListener(new ActionListener(){
095 
096            @Override
097            public void actionPerformed(ActionEvent e) {
098                JButton index=new JButton(new ImageIcon(path+"\\index.jpg"));
099                JFrame model=new JFrame("拼图模板");
100                model.setSize(370, 370);
101                model.setResizable(false);
102                model.add(index);
103                model.setVisible(true);
104                 
105            }
106             
107        });
108        itemExit.addActionListener(new ActionListener(){
109 
110            @Override
111            public void actionPerformed(ActionEvent e) {
112                // TODO Auto-generated method stub
113                System.exit(0);
114            }
115        });
116         
117        this.setTitle("拼图");
118        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
119        this.setLocationRelativeTo(null);
120        this.setSize(380, 420);
121        this.setResizable(false);
122        panel=new MainPanel(path,pattern);
123        startTime=System.currentTimeMillis();
124        this.add(panel);
125        this.setVisible(true);
126         
127         
128    }
129    @Override
130    public void run(){
131        while(true){
132            endTime=System.currentTimeMillis();
133            int time=(int) ((endTime-startTime)/1000);
134            jl_time.setText("时间: "+time);
135            jl_count.setText("步数: "+panel.getCount());
136        }
137    }
138    public void breakState(){
139        startTime=System.currentTimeMillis();
140        setPattern();
141        setPath();
142        System.out.println("pattern"+pattern);
143        panel.breakRandom(path,pattern);
144    }
145    public  void setPath(){
146        for(int i=0;i<jrbm_change.length;i++){
147            if(jrbm_change[i].isSelected()){
148                path="Img\\type"+(i+1)+"\\"+pattern;
149            }
150        }
151    }
152    public void setPattern(){
153        for(int i=0;i<jrbm_rank.length;i++)
154        {
155            if(jrbm_rank[i].isSelected()){
156                if(i==0)        pattern=3;
157                else if(i==1)   pattern=4;
158                else if(i==2)   pattern=5;
159            }
160        }
161    }
162    public static void main(String[] args){
163        Puzzle puzzle=new Puzzle();
164        Thread th=new Thread(puzzle);
165        th.start();
166    }
167}
最近下载更多
2606940687  LV1 2024年6月30日
1112WHQ  LV7 2023年11月3日
applejack  LV1 2023年6月11日
当代大学生  LV1 2023年5月3日
huangzy  LV12 2023年4月6日
alexcheung  LV3 2022年12月17日
微信网友_5992582549164032  LV6 2022年6月15日
nikki0401  LV1 2022年3月22日
13112360  LV2 2022年1月20日
dwaddwadaw  LV1 2022年1月11日
最近浏览更多
dushine  LV3 4月14日
2606940687  LV1 2024年6月30日
lxlxlx07 2024年6月5日
暂无贡献等级
2890892945  LV2 2023年12月31日
shajunming  LV2 2023年11月6日
1112WHQ  LV7 2023年11月3日
applejack  LV1 2023年6月11日
当代大学生  LV1 2023年5月3日
huangzy  LV12 2023年4月6日
win1991  LV6 2023年3月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友