| 定义了一个package名叫aloha 
 把下面的代码粘贴了,编译运行就可以了
 
 
 /*
 * NineGrid.java
 * @author libai8723@qq.com
 * Created on 2011-12-20, 13:21:36
 */
 
 package aloha;
 
 import java.awt.Dimension;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import javax.swing.JButton;
 import javax.swing.JOptionPane;
 
 /**
 *
 * @author libai
 */
 public class NineGrid extends javax.swing.JFrame implements ActionListener{
 
 /** Creates new form NineGrid */
 public NineGrid() {
 initComponents();
 Toolkit tk = Toolkit.getDefaultToolkit();
 Dimension d = tk.getScreenSize();
 this.setSize(400, 400);
 this.setTitle("Nine Grid");
 this.setLocation((int)(d.getWidth() - 400)/2, (int)(d.getHeight() - 400)/2);
 
 for(int i = 0;i < 15;i++)
 {
 this.arr = i+1;
 }
 this.arr[15] = -1;
 
 this.arr[11] = -1;
 this.arr[15] = 12;
 
 
 for(int i = 0;i < 15;i++)
 {
 int idx =(int) (Math.random() * 15);
 int tmp = this.arr[7];
 this.arr[7] = this.arr[idx];
 this.arr[idx] = tmp;
 }
 
 
 for(int i = 0;i < 4;i++)
 {
 for(int j = 0;j < 4;j++)
 {
 if(this.arr[i * 4 + j] != -1)
 {
 this.Buttons[j] =  new JButton("" + this.arr[i * 4 + j]);
 this.Buttons[j].addActionListener(this);
 this.getContentPane().add(this.Buttons[j]);
 }
 else
 {
 this.Buttons[j] =  new JButton("");
 this.Buttons[j].addActionListener(this);
 
 this.getContentPane().add(this.Buttons[j]);
 this.Buttons[j].setEnabled(false);
 }
 }
 }
 
 
 
 
 }
 
 /** This method is called from within the constructor to
 * initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is
 * always regenerated by the Form Editor.
 */
 @SuppressWarnings("unchecked")
 // <editor-fold defaultstate="collapsed" desc="Generated Code">
 private void initComponents() {
 
 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 getContentPane().setLayout(new java.awt.GridLayout(4, 4));
 
 pack();
 }// </editor-fold>
 
 /**
 * @param args the command line arguments
 */
 public static void main(String args[]) {
 java.awt.EventQueue.invokeLater(new Runnable() {
 public void run() {
 new NineGrid().setVisible(true);
 }
 });
 }
 
 private JButton[][] Buttons = new JButton[4][4];
 private int[] arr = new int[16];
 
 private boolean isSucceed()
 {
 boolean flag = true;
 for(int i  = 0;i < 4;i++)
 {
 for(int j  = 0;j < 4;j++)
 {
 if(!this.Buttons[j].getText().equals(""))
 if(!this.Buttons[j].getText().equals(""+(i * 4 + j + 1)))
 {
 return false;
 }
 }
 }
 return true;
 }
 
 public void actionPerformed(ActionEvent e)
 {
 int i = 0,j = 0;
 boolean in = false;
 for(i = 0;i < 4;i++)
 {
 for(j = 0;j < 4;j++)
 {
 if(e.getSource() == this.Buttons[j])
 {
 in = true;
 break;
 }
 
 }
 if(in)
 break;
 }
 
 
 if((i >= 0 && (j - 1) >= 0)&&(!this.Buttons[j - 1].isEnabled()))
 {
 String tmp = this.Buttons[j].getText();
 this.Buttons[j].setText(this.Buttons[j - 1].getText());
 this.Buttons[j - 1].setText(tmp);
 this.Buttons[j - 1].setEnabled(true);
 this.Buttons[j].setEnabled(false);
 if(this.isSucceed())
 JOptionPane.showConfirmDialog(this, "You Win!!!!");
 return;
 }
 if((i >= 0 && (j + 1) < 4)&&(!this.Buttons[j + 1].isEnabled()))
 {
 String tmp = this.Buttons[j].getText();
 this.Buttons[j].setText(this.Buttons[j + 1].getText());
 this.Buttons[j + 1].setText(tmp);
 this.Buttons[j + 1].setEnabled(true);
 this.Buttons[j].setEnabled(false);
 if(this.isSucceed())
 JOptionPane.showConfirmDialog(this, "You Win!!!!");
 return;
 }
 if((i - 1 >= 0 && j >= 0)&&(!this.Buttons[i - 1][j].isEnabled()))
 {
 String tmp = this.Buttons[j].getText();
 this.Buttons[j].setText(this.Buttons[i - 1][j].getText());
 this.Buttons[i - 1][j].setText(tmp);
 this.Buttons[i - 1][j].setEnabled(true);
 this.Buttons[j].setEnabled(false);
 if(this.isSucceed())
 JOptionPane.showConfirmDialog(this, "You Win!!!!");
 return;
 }
 if((i + 1 < 4 && j >= 0)&&(!this.Buttons[i + 1][j].isEnabled()))
 {
 String tmp = this.Buttons[j].getText();
 this.Buttons[j].setText(this.Buttons[i + 1][j].getText());
 this.Buttons[i + 1][j].setText(tmp);
 this.Buttons[i + 1][j].setEnabled(true);
 this.Buttons[j].setEnabled(false);
 if(this.isSucceed())
 JOptionPane.showConfirmDialog(this, "You Win!!!!");
 return;
 }
 
 
 
 }
 
 // Variables declaration - do not modify
 // End of variables declaration
 
 }
 |