登录界面
注册界面
游戏页面
上代码
App.java
import com.ui.GameJFrame;
import com.ui.LoginJFrame;
import com.ui.RegisterJFrame;
public class App {
public static void main(String[] args) {
new LoginJFrame();
// new GameJFrame();
// new RegisterJFrame();
}
}
GameJFrame.java
package com.ui;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
public class GameJFrame extends JFrame implements KeyListener,ActionListener {
//JFrame 界面,窗体
//子类呢? 也表示界面,窗体
//规定:GameJFrame这个界面表示的就是游戏的主界面
//以后跟游戏相关的所有逻辑都写在这个类中
int[][] data = new int[4][4];
//记录空白方块在二位数组中的位置
int x = 0;
int y = 0;
//定义一个变量,记录当前展示图片的路径
String path = "D:\Web\pintuxyx\image\animal\animal3\";
String rootPath = "D:\Web\pintuxyx\image";
//定义一个二维数组,存储正确的数据
int[][] win ={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,0}
};
//定义变量用来统计部署
int step = 0;
//创建选项下面的条目对象
JMenuItem replayItem = new JMenuItem("重新游戏");
JMenuItem reLoginItem = new JMenuItem("重新登陆");
JMenuItem closeItem = new JMenuItem("关闭游戏");
JMenuItem anItem = new JMenuItem("动物");
JMenuItem stItem = new JMenuItem("运动");
JMenuItem grItem = new JMenuItem("美女");
JMenuItem accountItem = new JMenuItem("公众号");
public GameJFrame() {
//初始化界面
initJFrame();
//初始化菜单
initJMenuBar();
//初始化数据(打乱)
initDate();
//初始化图片
initImage();
//让界面显示出来
this.setVisible(true);
}
//初始化数据
private void initDate() {
//定义一个一维数组
int[] tempArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
//2.打乱数组中的数据的顺序
//遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据进行交换
Random r = new Random();
for (int i = 0; i < tempArr.length; i++) {
//获取随即索引
int index = r.nextInt(tempArr.length);
//拿着遍历的每一个数据,跟随机索引上的数据进行交换
int temp = tempArr[i];
tempArr[i] = tempArr[index];
tempArr[index] = temp;
}
//4.给二维数组添加数据
//遍历一维数组中的tempArr得到每一个元素,把每一个元素依次添加到二位数组中
for (int i = 0; i < tempArr.length; i++) {
if (tempArr[i] == 0) {
x = i / 4;
y = i % 4;
}
data[i / 4][i % 4] = tempArr[i];
}
}
//初始化图片
private void initImage( ) {
//清空原本已经出现的 所有图片
System.out.println("Inside initImage method. Path: " + path);
this.getContentPane().removeAll();
//创建一个图片的ImageIcon的对象
//创建一个JLabel的对象(管理容器)
if (victory()) {
//显示胜利的图片
JLabel win = new JLabel(new ImageIcon("D:\Web\pintuxyx\image\win.png"));
win.setBounds(203, 283, 197, 73);
this.getContentPane().add(win);
}
JLabel stapCount = new JLabel("步数"+step);
stapCount.setBounds(50,30,100,20);
this.getContentPane().add(stapCount);
//外循环 ---
for (int i = 0; i < 4; i++) {
//内循环 ---
for (int j = 0; j < 4; j++) {
//获取当前要加载的图片序号
int num = data[i][j];
JLabel jLabel = new JLabel(new ImageIcon(path + num + ".jpg"));
//指定图片的位置
jLabel.setBounds(105 * j + 84, 105 * i + 134, 105, 105);
// //把管理容器添加到界面中
// this.add(jLabel);
//给图片添加边框
jLabel.setBorder(new BevelBorder(1));
this.getContentPane().add(jLabel);
//添加一次之后number需要自增,表示下一次加载后面一张图片
}
}
//添加背景图片
//先加载的图片会在上方,后加载的图片会在下方
JLabel background = new JLabel(new ImageIcon("D:\Web\pintuxyx\image\background.png"));
background.setBounds(40, 40, 508, 560);
this.getContentPane().add(background);
//刷新一下界面
this.getContentPane().repaint();
}
private void initJMenuBar() {
//创建整个菜单对象
JMenuBar jMenuBar = new JMenuBar();
//创建菜单上面的两个选项的对象(功能 关于我们)
JMenu functionJMenu = new JMenu("功能");
JMenu aboutJMenu = new JMenu("关于我们");
JMenu changJMenu = new JMenu("更换图片");
//将每一个选项下面的条目添加到选项里面
functionJMenu.add(changJMenu);
functionJMenu.add(replayItem);
functionJMenu.add(reLoginItem);
functionJMenu.add(closeItem);
changJMenu.add(anItem);
changJMenu.add(stItem);
changJMenu.add(grItem);
aboutJMenu.add(accountItem);
//给条目绑定事件
replayItem.addActionListener(this);
reLoginItem.addActionListener(this);
closeItem.addActionListener(this);
accountItem.addActionListener(this);
anItem.addActionListener(this);
stItem.addActionListener(this);
grItem.addActionListener(this);
//将菜单添加到菜单栏中
jMenuBar.add(functionJMenu);
jMenuBar.add(aboutJMenu);
//将整个界面设置菜单
this.setJMenuBar(jMenuBar);
}
private void initJFrame() {
//设置界面的宽高
this.setSize(603, 680);
//设置界面的标题
this.setTitle("拼图单机版 v1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//界面居中
this.setLocationRelativeTo(null);
//设置关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//取消默认的居中放置,只有需要了才会按照XY轴的形式添加组件
this.setLayout(null);
//给整个界面添加键盘监听事件
this.addKeyListener(this);
}
@Override
public void keyTyped(KeyEvent e) {
}
//按下不松时会调用这个方法
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if (code == 65) {
//把界面中所有的图片全部删除
this.getContentPane().removeAll();
//加载第一张完整的图片
JLabel all = new JLabel(new ImageIcon(path+"all.jpg"));
all.setBounds(84, 134, 420, 420);
this.getContentPane().add(all);
//添加背景图片
//先加载的图片会在上方,后加载的图片会在下方
JLabel background = new JLabel(new ImageIcon("D:\Web\pintuxyx\image\background.png"));
background.setBounds(40, 40, 508, 560);
this.getContentPane().add(background);
//刷新一下界面
this.getContentPane().repaint();
}
}
@Override
public void keyReleased(KeyEvent e) {
if (victory()) {
return;
}
int code = e.getKeyCode();
if (code == 37) {
System.out.println("向左移动");
if (y == 3) {
//修复BUG
return;
}
data[x][y] = data[x][y + 1];
data[x][y + 1] = 0;
y++;
//每移动一次,计数器+1
step++;
initImage();
} else if (code == 38) {
System.out.println("向上移动");
if (x == 3) {
return;
}
data[x][y] = data[x + 1][y];
data[x + 1][y] = 0;
x++;
//每移动一次,计数器+1
step++;
initImage();
} else if (code == 39) {
System.out.println("向右移动");
if (y == 0) {
return;
}
data[x][y] = data[x][y - 1];
data[x][y - 1] = 0;
y--;
//每移动一次,计数器+1
step++;
initImage();
} else if (code == 40) {
System.out.println("向下移动");
if (x == 0) {
return;
}
data[x][y] = data[x - 1][y];
data[x - 1][y] = 0;
x--;
//每移动一次,计数器+1
step++;
initImage();
} else if (code == 65) {
initImage();
}else if (code == 87) {
data = new int[][]{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,0}
};
initImage();
}
}
//判断data数组中的数据是否跟win数组中相同
//如果全部相同,返回true,否则返回false
public boolean victory(){
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
if (data[i][j] != win[i][j]){
//只要有一个不一样返回false
return false;
}
}
}
return true;
}
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == replayItem){
System.out.println("重新游戏");
//再次打乱数据
initDate();
//计步清零
step = 0;
//重新加载图片
initImage();
}else if(obj == reLoginItem){
System.out.println("重新登录");
//关闭当前界面
this.setVisible(false);
//打开登录界面
new LoginJFrame();
}else if(obj == closeItem){
System.out.println("关闭游戏");
//直接关闭虚拟机
System.exit(0);
}else if(obj == accountItem){
System.out.println("公众号");
//创建一个弹窗对象
JDialog jDialog = new JDialog();
JLabel jLabel = new JLabel(new ImageIcon("D:\Web\pintuxyx\image\about.jpg"));
jLabel.setBounds(0,0,390,567);
jDialog.getContentPane().add(jLabel);
//给弹窗设置大小
jDialog.setSize(429,623);
//弹窗置顶,居中
jDialog.setAlwaysOnTop(true);
jDialog.setLocationRelativeTo(null);
//弹窗不关闭 不能其他操作
jDialog.setModal(true);
//让弹窗显示出来
jDialog.setVisible(true);
}else if (obj == anItem){
Random r = new Random();
String index = String.valueOf(r.nextInt(8)+1);
path = rootPath+"\animal\animal"+index+"\";
//计步器清零
step = 0;
//再次打乱二维数组中的数据
initDate();
//重新加载图片
initImage();
} else if (obj == stItem){
System.out.println("运动");
Random r = new Random();
String index = String.valueOf(r.nextInt(10)+1);
path = rootPath+"\sport\sport"+index+"\";
//计步器清零
step = 0;
//再次打乱二维数组中的数据
initDate();
//重新加载图片
initImage();
}else if (obj == grItem){
System.out.println("美女");
Random r = new Random();
String index = String.valueOf(r.nextInt(13)+1);
path = rootPath+"\girl\girl"+index+"\";
//计步器清零
step = 0;
//再次打乱二维数组中的数据
initDate();
//重新加载图片
initImage();
}
}
}
LoginJFrame.java
package com.ui;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
public class LoginJFrame extends JFrame implements MouseListener {
//LoginJFrame 表示登录界面
//以后所有跟登录相关的代码,都写在这里
String path = "D:\Web\pintuxyx\image\login\";
//初始化对象
JTextField UserjTextField = new JTextField();//用户名输入框
JPasswordField passwordField = new JPasswordField();//用户密码输入框
JTextField code = new JTextField();//验证码输入框
JButton loginButton = new JButton();//登录按钮
JButton enrollButton = new JButton();//注册按钮
JLabel seelabel = new JLabel();
//验证码区域
JLabel rightCode = new JLabel();
//定义用户信息列表 并初始化数据
public static ArrayList<UserInfo> userInfoArrayList = new ArrayList<UserInfo>();
{
userInfoArrayList.add(new UserInfo("zhangxin","1314"));
for (UserInfo userInfo : userInfoArrayList) {
System.out.println("用户信息:"+userInfo.getName()+" "+userInfo.getPaw());
}
}
public LoginJFrame() {
//初始化界面
initJFrame();
//页面内容
initView();
}
//初始化界面
private void initJFrame() {
//在创建登录界面的时候,同时给这个界面去设置一些信息
//比如,宽高,直接展示出来
this.setSize(488, 430);
//设置界面的标题
this.setTitle("拼图登录界面");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//取消内部默认布局
this.setLayout(null);
this.setVisible(true);
}
//页面内容
public void initView() {
//添加用户名标签
JLabel UserjLabel = new JLabel(new ImageIcon(path + "用户名.png"));
UserjLabel.setBounds(100, 140, 47, 17);
this.getContentPane().add(UserjLabel);
//添加输入框
UserjTextField.setBounds(195, 134, 200, 30);
this.getContentPane().add(UserjTextField);
//添加密码标签
JLabel PawjLabel = new JLabel(new ImageIcon(path + "密码.png"));
PawjLabel.setBounds(110, 200, 32, 16);
this.getContentPane().add(PawjLabel);
//添加密码输入框
passwordField.setBounds(195, 195, 200, 30);
passwordField.setEchoChar('*');
this.getContentPane().add(passwordField);
//密码显示
seelabel.setIcon(new ImageIcon(path + "显示密码.png"));
seelabel.setBounds(400, 195, 50, 30);
seelabel.addMouseListener(this);
this.getContentPane().add(seelabel);
//验证码提示
JLabel codeText = new JLabel(new ImageIcon(path + "验证码.png"));
codeText.setBounds(100, 256, 50, 30);
this.getContentPane().add(codeText);
//验证码的输入框
code.setBounds(195, 256, 100, 30);
this.getContentPane().add(code);
//生成5个随机验证码
String codeStr = CodeUtil.Create(5);
//设置内容
rightCode.setText(codeStr);
//绑定鼠标事件
rightCode.addMouseListener(this);
//位置和宽高
rightCode.setBounds(300, 256, 50, 30);
//添加到界面
this.getContentPane().add(rightCode);
//设置登录按钮
loginButton.setBounds(123, 310, 128, 47);
ImageIcon icon1 = new ImageIcon(path + "登录按钮.png");
loginButton.setIcon(icon1);
//去除按钮的边框
loginButton.setBorderPainted(false);
//去除按钮的背景
loginButton.setContentAreaFilled(false);
loginButton.addMouseListener(this);
this.getContentPane().add(loginButton);
//设置注册按钮
enrollButton.setBounds(256, 310, 128, 47);
ImageIcon icon2 = new ImageIcon(path + "注册按钮.png");
enrollButton.setIcon(icon2);
//去除按钮的边框
enrollButton.setBorderPainted(false);
//去除按钮的背景
enrollButton.setContentAreaFilled(false);
enrollButton.addMouseListener(this);
this.getContentPane().add(enrollButton);
//创建背景色
JLabel back = new JLabel(new ImageIcon(path + "background.png"));
back.setBounds(0, 0, 470, 390);
this.getContentPane().add(back);
//刷新一下界面
this.getContentPane().repaint();
}
//弹窗设置
public void showDialog(String str) {
JDialog dialog = new JDialog();
dialog.setSize(180, 150);
//让弹框置顶
dialog.setAlwaysOnTop(true);
//让弹框居中
dialog.setLocationRelativeTo(null);
//弹框不关闭永远无法操作下面的界面
dialog.setModal(true);
JLabel warning = new JLabel(str);
//让显示的文字居中
warning.setHorizontalAlignment(JLabel.CENTER);
warning.setBounds(0, 0, 200, 150);
dialog.getContentPane().add(warning);
//让弹框展示出来
dialog.setVisible(true);
}
//核对用户信息
public boolean contains(UserInfo userInfo){
//for增强
for (UserInfo rightuser : userInfoArrayList) {
//集合user
if (userInfo.getName().equals(rightuser.getName()) && userInfo.getPaw().equals(rightuser.getPaw())) {
//相同则通过进行下一步
return true;
}
}
return false;
}
//鼠标点击监听
@Override
public void mouseClicked(MouseEvent m) {
if (m.getSource() == loginButton) {
System.out.println("用户点击登录按钮");
String name = UserjTextField.getText();
String paw = passwordField.getText();
//获取验证码
String codeInput = code.getText();
UserInfo user = new UserInfo(name, paw);
System.out.println("用户输入的用户名为:" + name);
System.out.println("用户输入的密码为:" + paw);
if (codeInput.length() == 0 && name.length() != 0 && paw.length() != 0) {
System.out.println("用户验证码为空!");
showDialog("验证码不能为空!");
String code = CodeUtil.Create(5);//创建一个5位长度的随机验证码
rightCode.setText(code);
} else if (name.length() == 0 || paw.length() == 0) {
System.out.println("用户名或者密码为空");
showDialog("用户名或者密码为空");
String code = CodeUtil.Create(5);
rightCode.setText(code);
//判断输入的验证码与生成的验证码是否相同
} else if (!codeInput.equalsIgnoreCase(rightCode.getText())) {
showDialog("验证码输入错误");
String code = CodeUtil.Create(5);
rightCode.setText(code);
} else if (contains(user)) {
System.out.println("用户输入账号正确,登录成功!");
//关闭登陆界面
this.setVisible(false);
new GameJFrame();
} else {
System.out.println("用户名或密码错误");
showDialog("用户名或密码错误");
String code = CodeUtil.Create(5);
rightCode.setText(code);
}
}
//更换验证码
if (m.getSource() == rightCode) {
System.out.println("更换验证码!");
String code = CodeUtil.Create(5);
rightCode.setText(code);
}
//进入注册页面
if (m.getSource() == enrollButton) {
System.out.println("用户注册");
this.dispose();
new RegisterJFrame();
}
}
//鼠标长按监听
@Override
public void mousePressed(MouseEvent m) {
if (m.getSource() == loginButton) {
loginButton.setIcon(new ImageIcon(path + "登录按下.png"));
} else if (m.getSource() == enrollButton) {
enrollButton.setIcon(new ImageIcon(path + "注册按下.png"));
} //显示查看密码
else if (m.getSource() == seelabel) {
seelabel.setIcon(new ImageIcon(path + "显示密码按下.png"));
passwordField.setEchoChar((char) 0);
}
}
//鼠标松开监听
@Override
public void mouseReleased(MouseEvent m) {
if (m.getSource() == loginButton) {
loginButton.setIcon(new ImageIcon(path + "登录按钮.png"));
} else if (m.getSource() == enrollButton) {
enrollButton.setIcon(new ImageIcon(path + "注册按钮.png"));
} else if (m.getSource() == seelabel) {
seelabel.setIcon(new ImageIcon(path + "显示密码.png"));
passwordField.setEchoChar('*');
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
RegisterJFrame.java
package com.ui;
import com.ui.LoginJFrame;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class RegisterJFrame extends JFrame implements MouseListener {
//跟注册相关的代码,都写在这个界面中
String path = "D:\Web\pintuxyx\image\register\";
//初始化对象
JTextField registeruser = new JTextField();
JPasswordField registerpaw = new JPasswordField();
JPasswordField registerpaw2 = new JPasswordField();
JButton registerbutton = new JButton();
JButton returnbutton = new JButton();
public RegisterJFrame(){
//初始化界面
initJFrame();
//初始化页面
initview();
}
//初始化界面
private void initJFrame() {
this.setSize(485,430);
//设置界面的标题
this.setTitle("拼图注册界面");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置关闭模式
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//让显示显示出来,建议写在最后
//取消内部默认布局
this.setLayout(null);
this.setVisible(true);
}
//初始化页面
private void initview() {
JLabel registerUser = new JLabel(new ImageIcon(path + "注册用户名.png"));
registerUser.setBounds(100, 140, 80, 17);
this.getContentPane().add(registerUser);
//添加输入框
registeruser.setBounds(195, 134, 200, 30);
this.getContentPane().add(registeruser);
//添加密码标签
JLabel PawjLabel = new JLabel(new ImageIcon(path + "注册密码.png"));
PawjLabel.setBounds(100, 200, 80, 17);
this.getContentPane().add(PawjLabel);
//添加注册输入框
registerpaw.setBounds(195, 195, 200, 30);
this.getContentPane().add(registerpaw);
JLabel PawjLabel2 = new JLabel(new ImageIcon(path + "再次输入密码.png"));
PawjLabel2.setBounds(70, 255, 120, 20);
this.getContentPane().add(PawjLabel2);
//添加再次注册输入框
registerpaw2.setBounds(195, 250, 200, 30);
this.getContentPane().add(registerpaw2);
//注册按钮
registerbutton.setBounds(123, 310, 128, 47);
ImageIcon icon1 = new ImageIcon(path + "注册按钮.png");
registerbutton.setIcon(icon1);
//去除按钮的边框
registerbutton.setBorderPainted(false);
//去除按钮的背景
registerbutton.setContentAreaFilled(false);
registerbutton.addMouseListener(this);
this.getContentPane().add(registerbutton);
//设置重置按钮
returnbutton.setBounds(256, 310, 128, 47);
ImageIcon icon2 = new ImageIcon(path + "重置按钮.png");
returnbutton.setIcon(icon2);
//去除按钮的边框
returnbutton.setBorderPainted(false);
//去除按钮的背景
returnbutton.setContentAreaFilled(false);
returnbutton.addMouseListener(this);
this.getContentPane().add(returnbutton);
JLabel back = new JLabel(new ImageIcon(path + "background.png"));
back.setBounds(0, 0, 470, 390);
this.getContentPane().add(back);
}
//弹窗设置
public void showDialog(String str) {
JDialog dialog = new JDialog();
dialog.setSize(180, 150);
//让弹框置顶
dialog.setAlwaysOnTop(true);
//让弹框居中
dialog.setLocationRelativeTo(null);
//弹框不关闭永远无法操作下面的界面
dialog.setModal(true);
JLabel warning = new JLabel(str);
//让显示的文字居中
warning.setHorizontalAlignment(JLabel.CENTER);
warning.setBounds(0, 0, 200, 150);
dialog.getContentPane().add(warning);
//让弹框展示出来
dialog.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent m) {
if (m.getSource() == registerbutton){
String name = registeruser.getText();
String paw = registerpaw.getText();
String paw2 = registerpaw2.getText();
if (name.length() != 0 && paw.length() != 0 && paw2.length() != 0) {
if(registerpaw.getText().equals(registerpaw2.getText())) {
System.out.println("用户注册成功!");
for (UserInfo userInfo : LoginJFrame.userInfoArrayList) {
System.out.println("当前用户信息:"+userInfo.getName()+" "+userInfo.getPaw());
}
LoginJFrame.userInfoArrayList.add(new UserInfo(name, paw));
System.out.println("用户添加成功!");
this.dispose();
new LoginJFrame();
}else {
showDialog("两次输入的密码不一样!");
}
}else {
showDialog("注册内容不能为空!");
}
} else if (m.getSource() == returnbutton) {
System.out.println("重置用户注册信息");
registeruser.setText("");
registerpaw.setText("");
registerpaw2.setText("");
}
}
@Override
public void mousePressed(MouseEvent m) {
if (m.getSource() == registerbutton){
registerbutton.setIcon(new ImageIcon(path + "注册按下.png"));
}else if (m.getSource() == returnbutton){
returnbutton.setIcon(new ImageIcon(path + "重置按下.png"));
}
}
@Override
public void mouseReleased(MouseEvent m) {
if (m.getSource() == registerbutton){
registerbutton.setIcon(new ImageIcon(path + "注册按钮.png"));
}else if (m.getSource() == returnbutton){
returnbutton.setIcon(new ImageIcon(path + "重置按钮.png"));
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
CodeUtil.java
package com.ui;
//验证码生成
import java.util.Random;
public class CodeUtil {
public static String Create(int n){
String code = "";
Random r = new Random();
for (int i = 0; i < n; i++) {
//随机生成三个数字
int type =r.nextInt(3);
switch (type){
case 0:
//大写字符
//A-Z
char ch = (char)(r.nextInt(26)+65);//转换为大写字符
code += ch;
break;
case 1:
//小写字符
// a-z
char ch1 = (char)(r.nextInt(26)+97);
code += ch1;
break;
case 2:
//数字字符
code +=r.nextInt(10);
break;
}
}
return code;
}
}
UserInfo.java
package com.ui;
//用户信息类
public class UserInfo {
private String name;
private String paw;
public UserInfo(String name, String paw) {
this.name = name;
this.paw = paw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPaw() {
return paw;
}
public void setPaw(String paw) {
this.paw = paw;
}
}