package cn.itcast.picture.ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;//引入一个界面包
import javax.swing.JLabel;
import javax.swing.JPanel;//引入一个面板包
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
/*
* 主界面类
*/
@SuppressWarnings("serial")
public class PictureMainFrame extends JFrame {//继承界面类
private String[] items = {"小女孩","女明星"};
private JRadioButton addNumInfo;//数字提示
private JRadioButton clearNumInfo;//清除提示Ctrl 1:快速将局部变量转换为成员变量
private PictureCanvas canvas;//拼图区
private PicturePreview preview;//预览区
private JComboBox<String> box;//下拉框
private JTextField name;//图片名称
public static JTextField step;//步数
private JButton start;//开始按钮
//空参数构造方法
public PictureMainFrame(){
//super();
init();//界面初始化操作
addcomponent();
addpreviewimage();//添加预览图片与拼图图片
addActionListener();//为组件添加事件监听
}
//为组件添加事件监听
private void addActionListener() {
//数字提示
addNumInfo.addActionListener(new ActionListener() {
//点击按钮时激活下面的方法
@Override
public void actionPerformed(ActionEvent e) {
//完成数字提示的显示
canvas.reLoadPictureAddNumber();
}
});
//清除提示
clearNumInfo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//完成数字提示的清除
canvas.reLoadPictureClearNumber();
}
});
//下拉框
box.addItemListener(new ItemListener() {//ItemListener:每一项的内容
@Override
public void itemStateChanged(ItemEvent e) {
//获取到选择的图片序号
int num = box.getSelectedIndex();//默认从零开始
//更新当前图片ID
//更新预览区
PictureCanvas.pictureID = num 1;
preview.repaint();//重新绘制预览区界面
//更新拼图区
canvas.reLoadPictureClearNumber();
//更新游戏状态区
name.setText("图片名称:" box.getSelectedItem()); //设置图片名称
//游戏步数清零
int stepNum = PictureCanvas.stepNum = 0;//游戏步数清零
step.setText("步数:" stepNum);//设置当前的步数
//按钮区
//把选择按钮设成清除提示按钮选中状态
clearNumInfo.setSelected(true);//
}
});
//开始按钮
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//已移动的步数清零
PictureCanvas.stepNum=0;
//游戏状态区进行步数更新显示
step.setText("步数:" PictureCanvas.stepNum);
//对小方格进行重新位置排序,打乱顺序
canvas.start();//*************
}
});
}
private void addpreviewimage() {
//创建一个面板,包含拼图区与预览区
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1, 2)); //设置为表格布局,为面板panel设置一行两列
canvas = new PictureCanvas();
canvas.setBorder(new TitledBorder("拼图区"));//为区域添加边框
preview = new PicturePreview();
preview.setBorder(new TitledBorder("图片预览区"));//为区域添加边框
//把拼图区与图片预览区添加到中间的面板中
panel.add(canvas,BorderLayout.WEST);//左边
panel.add(preview,BorderLayout.EAST);
//把面板显示在主界面中 居中显示
this.add(panel,BorderLayout.CENTER);
}
//添加组件
private void addcomponent() {
//创建一个用来在主界面上方显示的面板,在面板中要包含 按钮区 与 游戏状态区
JPanel panel = new JPanel();//new出一个面板
panel.setBackground(Color.PINK);//设置当前面板背景色为粉色
//----------以上代码没问题-------------------
panel.setLayout(new GridLayout(1, 2));//mgr:布局方式 GridLayout:表格布局方式 rows:代表行数 cols:代表列数
//创建左边按钮区面板
JPanel leftPanel = new JPanel();
leftPanel.setBorder(new TitledBorder("按钮区"));//添加边框
panel.add(leftPanel, BorderLayout.WEST);//将左边按钮区面板放在左侧
leftPanel.setBackground(Color.PINK);//将左边按钮区面板背景色设置成粉色
addNumInfo = new JRadioButton("数字提示",false);
clearNumInfo = new JRadioButton("清除提示",true);
//添加按钮组
ButtonGroup buttonGroup = new ButtonGroup(); //buttongroup:按钮组
//添加下拉选择框
box = new JComboBox<String>(items);
start = new JButton("start");
//添加单选按钮到按钮组中
buttonGroup.add(addNumInfo);
buttonGroup.add(clearNumInfo);
//设置背景色
addNumInfo.setBackground(Color.PINK);
clearNumInfo.setBackground(Color.PINK);
start.setBackground(Color.PINK);
//添加组件到左边面板中\\面板中不予许添加按钮组,只能添加按钮
leftPanel.add(addNumInfo);
leftPanel.add(clearNumInfo);
leftPanel.add(new JLabel(" 选择图片"));
leftPanel.add(box);
leftPanel.add(start);
//------------------------------------
//创建右边游戏状态区面板
JPanel rightPanel = new JPanel();
rightPanel.setBorder(new TitledBorder("游戏状态区"));//添加边框
rightPanel.setBackground(Color.PINK);//将右边游戏状态区面板背景色设置成粉色
rightPanel.setLayout(new GridLayout(1, 2));
name = new JTextField("图片名称:小女孩儿");
step = new JTextField("步数:0");
//把组件添加到游戏状态面板中name,BorderLayout.WEST
rightPanel.add(name,BorderLayout.WEST);//左边
rightPanel.add(step,BorderLayout.EAST);//右边
//设置文本框不能编辑
name.setEditable(false);
step.setEditable(false);
panel.add(rightPanel, BorderLayout.EAST);//将右边游戏状态面板放在右侧
//------------------以下代码没问题--------------------------
//设置panel 在主界面的上方 NORTH是北方,即上方
this.add(panel,BorderLayout.NORTH);
}
/*
* 界面初始化方法
*/
private void init() {
//1:设置当前窗口的标题
this.setTitle("拼图游戏");
//2:设置窗口的大小
this.setSize(1000, 720);
//3:设置窗口的显示位置
this.setLocation(460, 180);
//4:设置窗口的大小为固定大小
this.setResizable(false);
//设置窗口的默认关闭操作,当关闭窗体界面时,关闭java程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
资源文件列表
拼图游戏/.classpath , 301
拼图游戏/.project , 388
拼图游戏/.settings/org.eclipse.jdt.core.prefs , 598
拼图游戏/bin/cn/itcast/picture/app/MainApp.class , 567
拼图游戏/bin/cn/itcast/picture/ui/1.jpg , 154901
拼图游戏/bin/cn/itcast/picture/ui/1_1.gif , 22714
拼图游戏/bin/cn/itcast/picture/ui/1_10.gif , 22628
拼图游戏/bin/cn/itcast/picture/ui/1_11.gif , 24277
拼图游戏/bin/cn/itcast/picture/ui/1_12.gif , 21065
拼图游戏/bin/cn/itcast/picture/ui/1_2.gif , 23894
拼图游戏/bin/cn/itcast/picture/ui/1_3.gif , 22400
拼图游戏/bin/cn/itcast/picture/ui/1_4.gif , 20762
拼图游戏/bin/cn/itcast/picture/ui/1_5.gif , 19599
拼图游戏/bin/cn/itcast/picture/ui/1_6.gif , 24930
拼图游戏/bin/cn/itcast/picture/ui/1_7.gif , 23259
拼图游戏/bin/cn/itcast/picture/ui/1_8.gif , 23812
拼图游戏/bin/cn/itcast/picture/ui/1_9.gif , 20979
拼图游戏/bin/cn/itcast/picture/ui/2.jpg , 248943
拼图游戏/bin/cn/itcast/picture/ui/2_1.gif , 22813
拼图游戏/bin/cn/itcast/picture/ui/2_10.gif , 24633
拼图游戏/bin/cn/itcast/picture/ui/2_11.gif , 23584
拼图游戏/bin/cn/itcast/picture/ui/2_12.gif , 23828
拼图游戏/bin/cn/itcast/picture/ui/2_2.gif , 26336
拼图游戏/bin/cn/itcast/picture/ui/2_3.gif , 24253
拼图游戏/bin/cn/itcast/picture/ui/2_4.gif , 24556
拼图游戏/bin/cn/itcast/picture/ui/2_5.gif , 24180
拼图游戏/bin/cn/itcast/picture/ui/2_6.gif , 24288
拼图游戏/bin/cn/itcast/picture/ui/2_7.gif , 23984
拼图游戏/bin/cn/itcast/picture/ui/2_8.gif , 22682
拼图游戏/bin/cn/itcast/picture/ui/2_9.gif , 23607
拼图游戏/bin/cn/itcast/picture/ui/Cell.class , 1305
拼图游戏/bin/cn/itcast/picture/ui/PictureCanvas.class , 4993
拼图游戏/bin/cn/itcast/picture/ui/PictureMainFrame$1.class , 950
拼图游戏/bin/cn/itcast/picture/ui/PictureMainFrame$2.class , 952
拼图游戏/bin/cn/itcast/picture/ui/PictureMainFrame$3.class , 2094
拼图游戏/bin/cn/itcast/picture/ui/PictureMainFrame$4.class , 1257
拼图游戏/bin/cn/itcast/picture/ui/PictureMainFrame.class , 4565
拼图游戏/bin/cn/itcast/picture/ui/PicturePreview.class , 1139
拼图游戏/picture/1.jpg , 154901
拼图游戏/picture/1_1.gif , 22714
拼图游戏/picture/1_10.gif , 22628
拼图游戏/picture/1_11.gif , 24277
拼图游戏/picture/1_12.gif , 21065
拼图游戏/picture/1_2.gif , 23894
拼图游戏/picture/1_3.gif , 22400
拼图游戏/picture/1_4.gif , 20762
拼图游戏/picture/1_5.gif , 19599
拼图游戏/picture/1_6.gif , 24930
拼图游戏/picture/1_7.gif , 23259
拼图游戏/picture/1_8.gif , 23812
拼图游戏/picture/1_9.gif , 20979
拼图游戏/picture/2.jpg , 248943
拼图游戏/picture/2_1.gif , 22813
拼图游戏/picture/2_10.gif , 24633
拼图游戏/picture/2_11.gif , 23584
拼图游戏/picture/2_12.gif , 23828
拼图游戏/picture/2_2.gif , 26336
拼图游戏/picture/2_3.gif , 24253
拼图游戏/picture/2_4.gif , 24556
拼图游戏/picture/2_5.gif , 24180
拼图游戏/picture/2_6.gif , 24288
拼图游戏/picture/2_7.gif , 23984
拼图游戏/picture/2_8.gif , 22682
拼图游戏/picture/2_9.gif , 23607
拼图游戏/src/cn/itcast/picture/app/MainApp.java , 280
拼图游戏/src/cn/itcast/picture/ui/1.jpg , 154901
拼图游戏/src/cn/itcast/picture/ui/1_1.gif , 22714
拼图游戏/src/cn/itcast/picture/ui/1_10.gif , 22628
拼图游戏/src/cn/itcast/picture/ui/1_11.gif , 24277
拼图游戏/src/cn/itcast/picture/ui/1_12.gif , 21065
拼图游戏/src/cn/itcast/picture/ui/1_2.gif , 23894
拼图游戏/src/cn/itcast/picture/ui/1_3.gif , 22400
拼图游戏/src/cn/itcast/picture/ui/1_4.gif , 20762
拼图游戏/src/cn/itcast/picture/ui/1_5.gif , 19599
拼图游戏/src/cn/itcast/picture/ui/1_6.gif , 24930
拼图游戏/src/cn/itcast/picture/ui/1_7.gif , 23259
拼图游戏/src/cn/itcast/picture/ui/1_8.gif , 23812
拼图游戏/src/cn/itcast/picture/ui/1_9.gif , 20979
拼图游戏/src/cn/itcast/picture/ui/2.jpg , 248943
拼图游戏/src/cn/itcast/picture/ui/2_1.gif , 22813
拼图游戏/src/cn/itcast/picture/ui/2_10.gif , 24633
拼图游戏/src/cn/itcast/picture/ui/2_11.gif , 23584
拼图游戏/src/cn/itcast/picture/ui/2_12.gif , 23828
拼图游戏/src/cn/itcast/picture/ui/2_2.gif , 26336
拼图游戏/src/cn/itcast/picture/ui/2_3.gif , 24253
拼图游戏/src/cn/itcast/picture/ui/2_4.gif , 24556
拼图游戏/src/cn/itcast/picture/ui/2_5.gif , 24180
拼图游戏/src/cn/itcast/picture/ui/2_6.gif , 24288
拼图游戏/src/cn/itcast/picture/ui/2_7.gif , 23984
拼图游戏/src/cn/itcast/picture/ui/2_8.gif , 22682
拼图游戏/src/cn/itcast/picture/ui/2_9.gif , 23607
拼图游戏/src/cn/itcast/picture/ui/Cell.java , 1101
拼图游戏/src/cn/itcast/picture/ui/PictureCanvas.java , 6385
拼图游戏/src/cn/itcast/picture/ui/PictureMainFrame.java , 6152
拼图游戏/src/cn/itcast/picture/ui/PicturePreview.java , 829
拼图游戏/图像 1.jpg , 884235
