package demo;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;

public class Puzzle extends JFrame implements Runnable{
	JMenuBar jmBar;
	JMenu  menu,menuHelp,menuSelect,menuChange,menuRank;
	JMenuItem itemStart,itemExit,itemSelect,itemView;
	JRadioButtonMenuItem jrbm_change[]=new JRadioButtonMenuItem[4];
	JRadioButtonMenuItem jrbm_rank[]=new JRadioButtonMenuItem[3];
	MainPanel panel;
	String path;
	int pattern=3;
	JLabel jl_time;
	JLabel jl_count;
	long startTime;
	long endTime;
	public Puzzle(){
	    
	    //初始化菜单项
		jmBar=new  JMenuBar();
		menu=new  JMenu("菜单(M)");
		menuHelp=new JMenu("帮助(H)");
		menuSelect=new JMenu("选择(S)");
	    itemStart=new  JMenuItem("开始(S)");
	    itemExit=new JMenuItem("退出(Z)");
	    menuChange=new JMenu("图片更换");
	    menuRank=new JMenu("等级(R)");
	    itemView=new JMenuItem("查看背景(V)");
	    jl_time=new JLabel("时间:");
	    jl_count=new JLabel("步数:");
	    
	    jl_time.setForeground(Color.RED);
	    jl_count.setForeground(Color.RED);
	    
	    //添加图片选择按钮组
	    ButtonGroup groupChange=new ButtonGroup();
	    for(int i=0;i<jrbm_change.length;i++){
	    	jrbm_change[i]=new JRadioButtonMenuItem("0"+(i+1)+".jpg");
	    	groupChange.add(jrbm_change[i]);
	    	menuChange.add(jrbm_change[i]);
	    }
	    jrbm_change[0].setSelected(true);
	    setPath();
	   
	    //添加等级选择按钮组
	    ButtonGroup groupRank=new ButtonGroup();
	    String content;
	    for(int i=0;i<jrbm_rank.length;i++){
	    	if(i==0)      content=new String("简单");
	    	else if(i==1) content=new String("普通");
	    	else 		  content=new String("复杂");
	    	jrbm_rank[i]=new JRadioButtonMenuItem(content);
	    	groupRank.add(jrbm_rank[i]);
	    	menuRank.add(jrbm_rank[i]);
	    }
	    jrbm_rank[0].setSelected(true);
	    setPattern();
	    
	    menu.add(itemStart);
	    menu.add(itemView);
	    menu.add(itemExit);
	    menuSelect.add(menuChange);
	    menuSelect.add(menuRank);
	    jmBar.add(menu);
	    jmBar.add(menuSelect);
	    jmBar.add(menuHelp);
	    jmBar.add(new JLabel("                          "));
	    jmBar.add(jl_time);
	    jmBar.add(new JLabel("         "));
	    jmBar.add(jl_count);
	    this.setJMenuBar(jmBar);
	    
	    
	    
	    itemStart.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent e) {
				breakState();
			}
	    });
	    itemView.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				JButton index=new JButton(new ImageIcon(path+"\\index.jpg"));
				JFrame model=new JFrame("拼图模板");
				model.setSize(370, 370);
				model.setResizable(false);
				model.add(index);
				model.setVisible(true);
				
			}
	    	
	    });
	    itemExit.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
	    });
	    
	    this.setTitle("拼图");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setSize(380, 420);
	    this.setResizable(false);
	    panel=new MainPanel(path,pattern);
	    startTime=System.currentTimeMillis();
	    this.add(panel);
	    this.setVisible(true);
	    
	    
	}
	@Override
	public void run(){
		while(true){
			endTime=System.currentTimeMillis();
			int time=(int) ((endTime-startTime)/1000);
			jl_time.setText("时间: "+time);
			jl_count.setText("步数: "+panel.getCount());
		}
	}
	public void breakState(){
		startTime=System.currentTimeMillis();
		setPattern();
		setPath();
		System.out.println("pattern"+pattern);
		panel.breakRandom(path,pattern);
	}
	public  void setPath(){
		for(int i=0;i<jrbm_change.length;i++){
	    	if(jrbm_change[i].isSelected()){
	    		path="Img\\type"+(i+1)+"\\"+pattern;
	    	}
	    }
	}
	public void setPattern(){
		for(int i=0;i<jrbm_rank.length;i++)
		{
			if(jrbm_rank[i].isSelected()){
				if(i==0)	 	pattern=3;
				else if(i==1)	pattern=4;
				else if(i==2)   pattern=5;
			}
		}
	}
    public static void main(String[] args){
    	Puzzle puzzle=new Puzzle();
        Thread th=new Thread(puzzle);
        th.start();
    }
}
最近下载更多
2606940687  LV1 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日
最近浏览更多
2606940687  LV1 6月30日
lxlxlx07 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日
alexcheung  LV3 2022年12月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友