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

📄 mainframe.java

📁 (1)、深度优先搜索。 (2)、可以点击面板上的按钮设置七种默认的初始状态。 (3)、点击“自定义”按钮可以自行设定初始状态。 (4)、设定初始状态后点击“搜索”按钮
💻 JAVA
字号:
package org.hites.pegjump;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.*;
import java.util.EmptyStackException;

import javax.swing.*;

@SuppressWarnings("serial")
public class MainFrame extends JFrame {
	
	JPanel pane;
	JPanel btnPane;
	JButton[] btns;
	JButton[] commandbtns;
	Grid grid;

	public MainFrame()
	{
		InitPane();
		InitbtnPane();
		InitGrid("cross");
		setLocation(600 , 50);
		setTitle("Peg Jump");
		setLayout(new GridLayout(2,4));
		//setLayout(new BorderLayout());
		JPanel jp = new JPanel();
		jp.setLayout(new BorderLayout());
		jp.add(pane,BorderLayout.CENTER);
		add(jp);
		add(btnPane);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(new Dimension(420, 800));
		setVisible(true);
	}
	
	public void InitPane()
	{
		pane = new JPanel();
		pane.setLayout(new GridLayout(9,9));
		pane.setVisible(true);
		pane.setSize(new Dimension(420, 420));
		
		btns = new JButton[81];
		for(int i=0;i<btns.length;i++)
		{
			btns[i]=new JButton();
		
			btns[i].addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(java.awt.event.MouseEvent e) {
				
				JButton b = (JButton) e.getSource();
				
				clickEvent(b);
				
			}
		});
		}
		for(int i=0;i<=11;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		for(int i=15;i<=20;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		for(int i=24;i<=27;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		btns[35].setEnabled(false);btns[35].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));
		btns[36].setEnabled(false);btns[36].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));
		btns[44].setEnabled(false);btns[44].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));
		btns[45].setEnabled(false);btns[45].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));
		for(int i=53;i<=56;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		for(int i=60;i<=65;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		for(int i=69;i<btns.length;i++)
			{btns[i].setEnabled(false);btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/09.jpg")));}
		
		for(int i=0;i<btns.length;i++)
			pane.add(btns[i]);
		
	}
	
	public void InitbtnPane()
	{
		btnPane = new JPanel();
		btnPane.setLayout(new GridLayout(2,5,10,30));
		//btnPane.setLayout(new BorderLayout());
		btnPane.setVisible(true);
		//btnPane.setSize(new Dimension(138, 80));
		
		commandbtns = new JButton[10];
		commandbtns[0]=new JButton("cross");
		commandbtns[1]=new JButton("plus");
		commandbtns[2]=new JButton("fireplace");
		commandbtns[3]=new JButton("uparrow");
		commandbtns[4]=new JButton("pyramid");
		commandbtns[5]=new JButton("diamond");
		commandbtns[6]=new JButton("solitaire");
		
		commandbtns[7]=new JButton();
		commandbtns[7].setIcon(new ImageIcon(getClass().getResource("/iamges/web.gif")));
	
		for(int i=0;i<commandbtns.length-3;i++)
		{
			commandbtns[i].addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e)
				{
					InitGrid(e.getActionCommand().toString());
				}});
			btnPane.add(commandbtns[i]);
		}
		
		commandbtns[7].addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				try {
					if(grid.search())
						commandbtns[8].setEnabled(true);
					else
						commandbtns[8].setEnabled(false);
				} catch (Exception ex) {
					System.out.println("请先初始化!");
				}
			}});
		btnPane.add(commandbtns[7]);

		commandbtns[8] = new JButton("下一步");
		commandbtns[8].setEnabled(false);
		commandbtns[8].addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				try {
					grid.a = grid.reShowGrid();
					setPane();
				} catch (EmptyStackException ex) {
					System.out.println("已经走到头啦!");
					JOptionPane.showMessageDialog(null, "已经走到头啦!");
				}
			}});
		//commandbtns[8].setIcon(new ImageIcon(getClass().getResource("/iamges/GoStep.gif")));
		btnPane.add(commandbtns[8]);
		
		commandbtns[9] = new JButton("自定义");
		commandbtns[9].addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				for(int i=0;i<commandbtns.length-1;i++)
					commandbtns[i].setEnabled(false);
				
				if("自定义".equals(e.getActionCommand()))
				{
					commandbtns[9].setText("确定");
					for(int i=0;i<btns.length;i++)
						if(btns[i].getIcon().toString().equals("file:/D:/eclipse/workspace/PegJump/iamges/05.jpg"))
							btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/07.jpg")));
				}
				else if("确定".equals(e.getActionCommand()))
				{
					commandbtns[9].setText("自定义");	
					for(int i=0;i<commandbtns.length-1;i++)
						commandbtns[i].setEnabled(true);
					for(int i=0;i<btns.length;i++)
					{
						if(btns[i].getIcon().toString().equals("file:/D:/eclipse/workspace/PegJump/iamges/05.jpg"))
							grid.a.setCharAt(i, '#');
						else if(btns[i].getIcon().toString().equals("file:/D:/eclipse/workspace/PegJump/iamges/07.jpg"))
							grid.a.setCharAt(i, '0');
					}
				}
			}});
		btnPane.add(commandbtns[9]);
		
	}
	
	public void InitGrid(String command)
	{
		grid = new Grid(command);
		setPane();
	}
	
	public void clickEvent(JButton b)
	{
		if(b.getIcon().toString().equals("file:/D:/eclipse/workspace/PegJump/iamges/05.jpg"))
			b.setIcon(new ImageIcon(getClass().getResource("/iamges/07.jpg")));
		else if(b.getIcon().toString().equals("file:/D:/eclipse/workspace/PegJump/iamges/07.jpg"))
			b.setIcon(new ImageIcon(getClass().getResource("/iamges/05.jpg")));
		else {};
	}
	
	public void setPane()
	{
		StringBuilder str = grid.a;
		for(int i=0;i<str.length();i++)
		{
			if(str.charAt(i) == '#')
				btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/05.jpg")));
			else if(str.charAt(i) == '0')
				btns[i].setIcon(new ImageIcon(getClass().getResource("/iamges/07.jpg")));
		}
	}
}

⌨️ 快捷键说明

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