import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Font.*;
public class Puzel extends JFrame implements ActionListener{
private JButton tombol[][];
private JPanel PapanMainan,PapanJudul,PapanMenu;
private String [] Tt = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"," ",""};
private int indexlabel = 0;
public Puzel ( String title ){
super ( title );
// Buat Judul
PapanJudul = new JPanel();
JLabel judul = new JLabel ("Puzel");
judul.setAlignmentY(SwingConstants.CENTER);
judul.setHorizontalTextPosition(SwingConstants.CENTER);
PapanJudul.add(judul);
// BUat menu
JButton acak = new JButton ("Acak");
acak.addActionListener(this);
PapanMenu = new JPanel();
PapanMenu.add(acak);
PapanMenu.setBackground(Color.BLUE);
// Buat Tombol ABC
PapanMainan = new JPanel();
PapanMainan.setLayout( new GridLayout(4,4,4,4));
tombol = new JButton[4][4];
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container PapanUtama = this.getContentPane();
int index = 0;
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
tombol[i][j] = new JButton(Tt[index]);
tombol[i][j].setFont( new java.awt.Font("",1,38));
PapanMainan.add(tombol[i][j]);
index ++;
tombol[i][j].addActionListener(this);
}
}
PapanUtama.setLayout(new BorderLayout());
PapanUtama.add(PapanJudul,BorderLayout.NORTH);
PapanUtama.add(PapanMainan,BorderLayout.CENTER);
PapanUtama.add(PapanMenu,BorderLayout.SOUTH);
acakAcak();
}
public void acakAcak(){
String [] acak = {"D","A","B","F","G","K","L","C","E","O"," ","M","N","H",
"I","J"};
indexlabel++;
if (indexlabel>12){indexlabel = 1;}
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (indexlabel>15){
indexlabel = 0;
}
tombol[i][j].setText(acak[indexlabel]);
tombol[i][j].setEnabled(true);
indexlabel++;
}
}
}
public void actionPerformed(ActionEvent a){
String l = a.getActionCommand();
int indexi = 0,indexj=0;
Boolean cek = false;
// acak
if(l.equals("Acak")){
acakAcak();
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (tombol[i][j].getText().equals("Acak")){
cek = true;
}
}
}
// acak
}
// acak
if (l !=" "){
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if(a.getSource()== tombol[i][j]){
indexi = i;
indexj = j;
}
}
}
if(((indexi==1)|(indexi=2))&&((indexj==1)|(indexj==2))){
if(tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}
}else if (indexi==0){
if (indexj==0){
if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}else if (indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}else{
}if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if(indexi==3){
if (indexj==0){
if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}
}else if(indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}else{
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}
}else if(indexj==0){
if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}
}else if(indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}
}
// cek menang
cek=true;
int x=0;
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (!tombol[i][j].getText().equals(Tt[x])){
cek = false;
}
x++;
}
}
if(cek = true){
JOptionPane.showMessageDialog(null,"Selamat Anda Menang!","Menang.....",JOptionPane.PLAIN_MESSAGE);
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
tombol[i][j].setEnabled(false);
}
}
}
}
public static void main(String[]args){
Puzel f = new Puzel("maen puzel");
f.pack();// setsize(300,300);
f.setLocation(100,100);
f.setVisible(true);
}
}
Lanjut.....
import javax.swing.*;
import java.awt.event.*;
import java.awt.Font.*;
public class Puzel extends JFrame implements ActionListener{
private JButton tombol[][];
private JPanel PapanMainan,PapanJudul,PapanMenu;
private String [] Tt = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"," ",""};
private int indexlabel = 0;
public Puzel ( String title ){
super ( title );
// Buat Judul
PapanJudul = new JPanel();
JLabel judul = new JLabel ("Puzel");
judul.setAlignmentY(SwingConstants.CENTER);
judul.setHorizontalTextPosition(SwingConstants.CENTER);
PapanJudul.add(judul);
// BUat menu
JButton acak = new JButton ("Acak");
acak.addActionListener(this);
PapanMenu = new JPanel();
PapanMenu.add(acak);
PapanMenu.setBackground(Color.BLUE);
// Buat Tombol ABC
PapanMainan = new JPanel();
PapanMainan.setLayout( new GridLayout(4,4,4,4));
tombol = new JButton[4][4];
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container PapanUtama = this.getContentPane();
int index = 0;
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
tombol[i][j] = new JButton(Tt[index]);
tombol[i][j].setFont( new java.awt.Font("",1,38));
PapanMainan.add(tombol[i][j]);
index ++;
tombol[i][j].addActionListener(this);
}
}
PapanUtama.setLayout(new BorderLayout());
PapanUtama.add(PapanJudul,BorderLayout.NORTH);
PapanUtama.add(PapanMainan,BorderLayout.CENTER);
PapanUtama.add(PapanMenu,BorderLayout.SOUTH);
acakAcak();
}
public void acakAcak(){
String [] acak = {"D","A","B","F","G","K","L","C","E","O"," ","M","N","H",
"I","J"};
indexlabel++;
if (indexlabel>12){indexlabel = 1;}
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (indexlabel>15){
indexlabel = 0;
}
tombol[i][j].setText(acak[indexlabel]);
tombol[i][j].setEnabled(true);
indexlabel++;
}
}
}
public void actionPerformed(ActionEvent a){
String l = a.getActionCommand();
int indexi = 0,indexj=0;
Boolean cek = false;
// acak
if(l.equals("Acak")){
acakAcak();
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (tombol[i][j].getText().equals("Acak")){
cek = true;
}
}
}
// acak
}
// acak
if (l !=" "){
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if(a.getSource()== tombol[i][j]){
indexi = i;
indexj = j;
}
}
}
if(((indexi==1)|(indexi=2))&&((indexj==1)|(indexj==2))){
if(tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}
}else if (indexi==0){
if (indexj==0){
if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}else if (indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}else{
}if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if(indexi==3){
if (indexj==0){
if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}
}else if(indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}else{
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}
}else if(indexj==0){
if (tombol[indexi][indexj+1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj+1].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}
}
}else if(indexj==3){
if (tombol[indexi][indexj-1].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi][indexj-1].setText(l);
}else if (tombol[indexi+1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi+1][indexj].setText(l);
}else if (tombol[indexi-1][indexj].getText().equals(" ")){
tombol[indexi][indexj].setText(" ");
tombol[indexi-1][indexj].setText(l);
}
}
}
// cek menang
cek=true;
int x=0;
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
if (!tombol[i][j].getText().equals(Tt[x])){
cek = false;
}
x++;
}
}
if(cek = true){
JOptionPane.showMessageDialog(null,"Selamat Anda Menang!","Menang.....",JOptionPane.PLAIN_MESSAGE);
for(int i=0;i<=3;i++){
for(int j=0;j<=3;j++){
tombol[i][j].setEnabled(false);
}
}
}
}
public static void main(String[]args){
Puzel f = new Puzel("maen puzel");
f.pack();// setsize(300,300);
f.setLocation(100,100);
f.setVisible(true);
}
}