DormManagerSystem.java

=宿舍管理系统=======
----------dao层
package com.imti.dao;

import java.util.List;

import com.imti.entity.Student;

public interface IStudentDao
{
// 添加学生信息
public int addStudentInfo(Student stu);

// 获取已经入住的总人数
public int getHaveStudentCount();

// 查询指定宿舍号中入住的学生信息
public List<Student> getStudentInfoListWithRoomId(int roomId);

// 根据身份证号码删除学生信息
public int deleteStudentInfoWithCardNumber(String cardNumber);

// 根据身份证号码修改学生的宿舍信息
public int updateStudentDidWithCardNumber(int did, String cardNumber);

}

package com.imti.dao;

import java.util.List;

import com.imti.entity.Student;

public interface IStudentDao
{
// 添加学生信息
public int addStudentInfo(Student stu);

// 获取已经入住的总人数
public int getHaveStudentCount();

// 查询指定宿舍号中入住的学生信息
public List<Student> getStudentInfoListWithRoomId(int roomId);

// 根据身份证号码删除学生信息
public int deleteStudentInfoWithCardNumber(String cardNumber);

// 根据身份证号码修改学生的宿舍信息
public int updateStudentDidWithCardNumber(int did, String cardNumber);

}

package com.imti.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.imti.entity.Admin;
import com.imti.util.JDBCManager;

/*

  • 管理员:数据访问层

  • */
    public class AdminDao
    {
    // 验证登录用户
    public Admin checkUser(Admin admin) {
    Connection conn = null;
    PreparedStatement preparedStmt = null;
    ResultSet rs = null;

     // 创建一个管理员对象
     Admin mAdmin = null;
    
     try {
     	// 1.获取连接
     	conn = JDBCManager.getConnection();
    
     	// 2.创建PreparedStatement对象
     	String sql = "select * from tab_admin where aname = ? and password = ?";
     	preparedStmt = conn.prepareStatement(sql);
    
     	// 3.设置参数
     	preparedStmt.setString(1, admin.getAname());
     	preparedStmt.setString(2, admin.getPassword());
    
     	// 4.执行并返回结果集
     	rs = preparedStmt.executeQuery();
    
     	// 5.循环遍历数据
     	// boolean bool = rs.next();
     	// System.out.println("bool=" + bool);
     	while (rs.next()) {
     		int aid = rs.getInt("aid");
     		String aname = rs.getString("aname");
     		String password = rs.getString("password");
     		int selectLimit = rs.getInt("select_limit");
     		int updateLimit = rs.getInt("update_limit");
     		int deleteLimit = rs.getInt("delete_limit");
     		int addLimit = rs.getInt("add_limit");
    
     		// 实例化管理员对象
     		mAdmin = new Admin(aid, aname, password, selectLimit, updateLimit, deleteLimit, addLimit);
     		System.out.println("管理员信息:" + mAdmin);
     	}
    
     } catch (SQLException e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     } finally {
     	JDBCManager.close(conn, preparedStmt, rs);
     }
     return mAdmin;
    

    }
    }

package com.imti.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.imti.entity.Admin;
import com.imti.util.JDBCManager;

/*

  • 管理员:数据访问层

  • */
    public class AdminDao
    {
    // 验证登录用户
    public Admin checkUser(Admin admin) {
    Connection conn = null;
    PreparedStatement preparedStmt = null;
    ResultSet rs = null;

     // 创建一个管理员对象
     Admin mAdmin = null;
    
     try {
     	// 1.获取连接
     	conn = JDBCManager.getConnection();
    
     	// 2.创建PreparedStatement对象
     	String sql = "select * from tab_admin where aname = ? and password = ?";
     	preparedStmt = conn.prepareStatement(sql);
    
     	// 3.设置参数
     	preparedStmt.setString(1, admin.getAname());
     	preparedStmt.setString(2, admin.getPassword());
    
     	// 4.执行并返回结果集
     	rs = preparedStmt.executeQuery();
    
     	// 5.循环遍历数据
     	// boolean bool = rs.next();
     	// System.out.println("bool=" + bool);
     	while (rs.next()) {
     		int aid = rs.getInt("aid");
     		String aname = rs.getString("aname");
     		String password = rs.getString("password");
     		int selectLimit = rs.getInt("select_limit");
     		int updateLimit = rs.getInt("update_limit");
     		int deleteLimit = rs.getInt("delete_limit");
     		int addLimit = rs.getInt("add_limit");
    
     		// 实例化管理员对象
     		mAdmin = new Admin(aid, aname, password, selectLimit, updateLimit, deleteLimit, addLimit);
     		System.out.println("管理员信息:" + mAdmin);
     	}
    
     } catch (SQLException e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     } finally {
     	JDBCManager.close(conn, preparedStmt, rs);
     }
     return mAdmin;
    

    }
    }

=实体类=====
package com.imti.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.imti.entity.Admin;
import com.imti.util.JDBCManager;

/*

  • 管理员:数据访问层

  • */
    public class AdminDao
    {
    // 验证登录用户
    public Admin checkUser(Admin admin) {
    Connection conn = null;
    PreparedStatement preparedStmt = null;
    ResultSet rs = null;

     // 创建一个管理员对象
     Admin mAdmin = null;
    
     try {
     	// 1.获取连接
     	conn = JDBCManager.getConnection();
    
     	// 2.创建PreparedStatement对象
     	String sql = "select * from tab_admin where aname = ? and password = ?";
     	preparedStmt = conn.prepareStatement(sql);
    
     	// 3.设置参数
     	preparedStmt.setString(1, admin.getAname());
     	preparedStmt.setString(2, admin.getPassword());
    
     	// 4.执行并返回结果集
     	rs = preparedStmt.executeQuery();
    
     	// 5.循环遍历数据
     	// boolean bool = rs.next();
     	// System.out.println("bool=" + bool);
     	while (rs.next()) {
     		int aid = rs.getInt("aid");
     		String aname = rs.getString("aname");
     		String password = rs.getString("password");
     		int selectLimit = rs.getInt("select_limit");
     		int updateLimit = rs.getInt("update_limit");
     		int deleteLimit = rs.getInt("delete_limit");
     		int addLimit = rs.getInt("add_limit");
    
     		// 实例化管理员对象
     		mAdmin = new Admin(aid, aname, password, selectLimit, updateLimit, deleteLimit, addLimit);
     		System.out.println("管理员信息:" + mAdmin);
     	}
    
     } catch (SQLException e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     } finally {
     	JDBCManager.close(conn, preparedStmt, rs);
     }
     return mAdmin;
    

    }
    }

package com.imti.entity;

import java.util.Vector;

public class Student
{
private int sid;
private int did;
private String sname;
private String cardNumber;
private String gender;
private int age;

// 构造方法
public Student() {
	super();
}

/**
 * @param sid
 * @param did
 * @param sname
 * @param cardNumber
 * @param gender
 * @param age
 */
public Student(int sid, int did, String sname, String cardNumber, String gender, int age) {
	super();
	this.sid = sid;
	this.did = did;
	this.sname = sname;
	this.cardNumber = cardNumber;
	this.gender = gender;
	this.age = age;
}

public Student(int did, String sname, String cardNumber, String gender, int age) {
	super();
	this.did = did;
	this.sname = sname;
	this.cardNumber = cardNumber;
	this.gender = gender;
	this.age = age;
}

public int getSid() {
	return sid;
}

public void setSid(int sid) {
	this.sid = sid;
}

public int getDid() {
	return did;
}

public void setDid(int did) {
	this.did = did;
}

public String getSname() {
	return sname;
}

public void setSname(String sname) {
	this.sname = sname;
}

public String getCardNumber() {
	return cardNumber;
}

public void setCardNumber(String cardNumber) {
	this.cardNumber = cardNumber;
}

public String getGender() {
	return gender;
}

public void setGender(String gender) {
	this.gender = gender;
}

public int getAge() {
	return age;
}

public void setAge(int age) {
	this.age = age;
}

public Vector<Object> getVector() {
	Vector<Object> vec = new Vector<>();
	vec.add(this.getSname());
	vec.add(this.getCardNumber());
	vec.add(this.getGender());
	vec.add(this.getAge());
	return vec;
}

// toString()
@Override
public String toString() {
	// TODO Auto-generated method stub
	return "学生id:" + this.getSid() + ",宿舍id:" + this.getDid() + ",姓名:" + this.getSname() + ",身份证号码:"
			+ this.getCardNumber() + ",性别:" + this.getGender() + ",年龄:" + this.getAge();
}

}

package com.imti.entity;

public class Admin
{
// 属性
private int aid;
private String aname;
private String password;

// 权限:权限的值只能0和1
private int selectLimit;
private int updateLimit;
private int deleteLimit;
private int addLimit;

// 构造方法
public Admin() {
	super();
}

/**
 * @param aid
 * @param aname
 * @param password
 * @param selectLimit
 * @param updateLimit
 * @param deleteLimit
 * @param addLimit
 */
public Admin(int aid, String aname, String password, int selectLimit, int updateLimit, int deleteLimit,
		int addLimit) {
	super();
	this.aid = aid;
	this.aname = aname;
	this.password = password;
	this.selectLimit = selectLimit;
	this.updateLimit = updateLimit;
	this.deleteLimit = deleteLimit;
	this.addLimit = addLimit;
}

public int getAid() {
	return aid;
}

public void setAid(int aid) {
	this.aid = aid;
}

public String getAname() {
	return aname;
}

public void setAname(String aname) {
	this.aname = aname;
}

public String getPassword() {
	return password;
}

public void setPassword(String password) {
	this.password = password;
}

public int getSelectLimit() {
	return selectLimit;
}

public void setSelectLimit(int selectLimit) {
	this.selectLimit = selectLimit;
}

public int getUpdateLimit() {
	return updateLimit;
}

public void setUpdateLimit(int updateLimit) {
	this.updateLimit = updateLimit;
}

public int getDeleteLimit() {
	return deleteLimit;
}

public void setDeleteLimit(int deleteLimit) {
	this.deleteLimit = deleteLimit;
}

public int getAddLimit() {
	return addLimit;
}

public void setAddLimit(int addLimit) {
	this.addLimit = addLimit;
}

// 重写toString
@Override
public String toString() {
	// TODO Auto-generated method stub
	return "编号:" + this.getAid() + ",姓名:" + this.getAname() + ",密码:" + this.getPassword() + ",查询权限:"
			+ this.getSelectLimit() + ",修改权限:" + this.getUpdateLimit() + ",删除权限:" + this.getDeleteLimit() + ",添加权限:"
			+ this.getAddLimit();
}

}

===Logic层=
package com.imti.logic;

import java.util.ArrayList;
import java.util.List;

import com.imti.dao.DormDao;

/*

  • 宿舍类:业务逻辑层

  • */
    public class DormLogic
    {
    // 创建数据访问层的对象
    private DormDao mDormDao = new DormDao();

    // 根据性别,查询可以入住的房间号码
    public List getRoomIdWithType(String typeStr) {
    List roomNumList = new ArrayList<>();

     // 判断对象不为空,则执行相应的程序
     if (mDormDao != null) {
     	roomNumList = mDormDao.getRoomIdWithType(typeStr);
     	return roomNumList;
     }
    
     // System.out.println("DormLogic获取宿舍id为null!");
     return null;
    

    }

    // 根据roomid获取did
    public int getDidWithRoomId(int roomId) {
    // 判断对象不为空,则执行相应的程序
    if (mDormDao != null) {
    int count = mDormDao.getDidWithRoomId(roomId);
    return count;
    }
    return 0;
    }

    // 获取可以入住的总人数
    public int getDormTotal() {
    if (mDormDao == null)
    return 0;

     int total = mDormDao.getDormTotal();
     return total;
    

    }

    // 获取所有的宿舍号
    public List getAllRoomIdList() {
    if (mDormDao == null)
    return null;

     List<Integer> roomNumList = mDormDao.getAllRoomIdList();
     return roomNumList;
    

    }

    // 根据宿舍号查询可以入住的人数
    public int getCountWithRoomId(int roomId) {
    if (mDormDao == null)
    return 0;

     int count = mDormDao.getCountWithRoomId(roomId);
     return count;
    

    }

    // 根据did更新宿舍类型
    public int updateDormTypeWhitDid(String gender, int did) {
    if (mDormDao == null)
    return 0;

     int count = mDormDao.updateDormTypeWhitDid(gender, did);
     return count;
    

    }
    }

package com.imti.logic;

import java.util.List;

import com.imti.dao.StudentDaoImpl;
import com.imti.entity.Student;

public class StudentLogic
{
private StudentDaoImpl mStudentDaoImpl = new StudentDaoImpl();

// 插入数据
public int insertStudentInfo(Student stu) {

	if (mStudentDaoImpl != null) {
		int count = mStudentDaoImpl.addStudentInfo(stu);

		if (count > 0)
			System.out.println("入住成功!");
		else {
			System.out.println("入住失败!");
		}

		return count;
	}
	return 0;
}

// 获取已经入住的人数
public int getHaveStudentCount() {
	if (mStudentDaoImpl == null)
		return 0;

	int count = mStudentDaoImpl.getHaveStudentCount();
	return count;
}

// 根据宿舍号查询入住的学生信息
public List<Student> getStudentInfoListWithRoomId(int roomId) {
	if (mStudentDaoImpl == null)
		return null;

	List<Student> stuList = mStudentDaoImpl.getStudentInfoListWithRoomId(roomId);
	return stuList;
}

// 根据身份证号码删除学生信息
public int deleteStudentInfoWithCardNumber(String cardNumber) {
	if (mStudentDaoImpl == null)
		return 0;

	int dcount = mStudentDaoImpl.deleteStudentInfoWithCardNumber(cardNumber);
	return dcount;
}

// 更换宿舍
public int updateStudentDidWithCardNumber(int did, String cardNumber) {
	if (mStudentDaoImpl == null)
		return 0;

	int ucount = mStudentDaoImpl.updateStudentDidWithCardNumber(did, cardNumber);
	return ucount;
}

}

package com.imti.logic;

import com.imti.dao.AdminDao;
import com.imti.entity.Admin;

/*

  • 管理员的业务逻辑层

  • */
    public class AdminLogic
    {
    // 创建数据访问层对象
    private AdminDao mAdminDao = new AdminDao();

    // 验证登录用户
    public Admin checkUser(Admin admin) {
    Admin mAdmin = mAdminDao.checkUser(admin);

     if (mAdmin == null)
     	System.out.println("此管理员不存在!");
     return mAdmin;
    

    }
    }

=UI层===
package com.imti.ui;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

import com.imti.logic.DormLogic;
import com.imti.logic.StudentLogic;
import com.imti.util.FrameUtil;

/**

  • 1.宿舍信息界面: a.已经入住的总人数 b.宿舍一共可入住的人数 c.获取所有宿舍的房间号码
    */
    public class RoomNumFrame extends JFrame
    {
    private static final long serialVersionUID = 1L;

    // 主面板
    private JPanel mainPanel = new JPanel();

    private JLabel infoLabel = null;
    private JPanel roomPanel = null;
    private JButton addNewStuBtn = null;
    private GridLayout roomGridLayout = null;

    // 创建业务逻辑层对象
    private StudentLogic mStudentLogic = new StudentLogic();
    private DormLogic mDormLogic = new DormLogic();

    // 获取入住的学生人数
    private int havaCount = 0;
    private int dormTotal = 0;
    private List roomIdList = new ArrayList<>();

    // 行和列
    private int rows = 0;
    private int column = 0;

    public RoomNumFrame() {
    // TODO Auto-generated constructor stub
    super(“宿舍信息表”);
    initData();

     initView();
     setData();
    

    }

    // 获取数据
    public void initData() {
    if (mStudentLogic == null || mDormLogic == null)
    return;

     // 获取入住的学生人数
     havaCount = mStudentLogic.getHaveStudentCount();
    
     // 获取可以入住的总人数
     dormTotal = mDormLogic.getDormTotal();
    
     // 获取所有的房间号
     roomIdList = mDormLogic.getAllRoomIdList();
     System.out.println("宿舍界面:" + roomIdList);
    
     // 计算除需要的行和列
     if (roomIdList.size() % 4 == 0) {
     	rows = roomIdList.size() / 4;
     }
    

    }

    // 设置数据
    public void setData() {
    // 显示信息
    setLabelMessage(havaCount, dormTotal);
    }

    // 初始化view
    public void initView() {
    this.setSize(520, 520);
    FrameUtil.windowToCenterWithWindow(this);
    mainPanel.setLayout(null);
    this.add(mainPanel);

     infoLabel = new JLabel();
     infoLabel.setBounds(60, 50, 270, 30);
     infoLabel.setFont(new Font("楷体", Font.BOLD, 15));
     infoLabel.setHorizontalAlignment(JLabel.LEFT);
     mainPanel.add(infoLabel);
    
     addNewStuBtn = new JButton("新生入住");
     addNewStuBtn.setActionCommand("new");
     addNewStuBtn.setBounds(350, 50, 100, 30);
     addNewStuBtn.setFont(new Font("楷体", Font.BOLD, 15));
     addNewStuBtn.setHorizontalAlignment(JLabel.LEFT);
     addNewStuBtn.addActionListener(new MyActionListener());
     mainPanel.add(addNewStuBtn);
    
     roomGridLayout = new GridLayout(5, 4, 30, 30);
     roomPanel = new JPanel();
     roomPanel.setBounds(60, 100, this.getWidth() - 60 * 2, this.getHeight() - 20 * 2 - 120);
     roomPanel.setLayout(roomGridLayout);
     mainPanel.add(roomPanel);
    
     addRoomNum();
    
     this.setResizable(false);
     this.setVisible(true);
     this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    

    }

    // 添加宿舍号
    public void addRoomNum() {
    // 总的宿舍号
    int total = roomGridLayout.getColumns() * roomGridLayout.getRows();

     for (int i = 0; i < roomIdList.size(); i++) {
     	// 循环向roomPanel添加房间号按钮
     	JButton jb = new JButton(String.valueOf(roomIdList.get(i)));
     	jb.setActionCommand(String.valueOf(roomIdList.get(i)));
     	jb.setPreferredSize(new Dimension(40, 40));
     	jb.addActionListener(new MyActionListener());
     	roomPanel.add(jb);
     }
    

    }

    // 显示信息
    public void setLabelMessage(int num1, int num2) {
    String msg = “已住” + num1 + “人,还可以住
    + (num2 - num1) + “
    人”;

     infoLabel.setText(msg);
    

    }

    // 使用内部类添加监听器
    class MyActionListener implements ActionListener
    {
    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    String command = e.getActionCommand();
    if (command.equals(“new”)) {
    new AddStudentDialog(RoomNumFrame.this);
    } else {
    System.out.println(“command=” + command);
    new ScholasticInfoTableDialog(RoomNumFrame.this, Integer.parseInt(command));
    }
    }
    }

    public static void main(String[] args) {
    new RoomNumFrame();
    }
    }

package com.imti.ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;

import com.imti.entity.Student;
import com.imti.logic.DormLogic;
import com.imti.logic.StudentLogic;
import com.imti.util.FrameUtil;

public class ScholasticInfoTableDialog extends JDialog implements ActionListener
{
private static final long serialVersionUID = 1L;

private String[] columnNames = { "姓名", "身份证号", "性别", "年龄" };
private DefaultTableModel dm = new DefaultTableModel(columnNames, 0);
private JTable stuTable = new JTable(dm);

// 主面板
private JPanel mainPanel = new JPanel();
private JLabel roomInfoLabel = null;
private JButton addNewBtn = null;

// 创建业务逻辑层StudentLogic对象
private StudentLogic mStudentLogic = new StudentLogic();
private DormLogic mDormLogic = new DormLogic();

private List<Student> stuList = new ArrayList<>();
private int roomId = 0;
private int havaCount = 0;
private int total = 0;

public ScholasticInfoTableDialog(Window window, int roomId) {
	// TODO Auto-generated constructor stub
	super(window, "宿舍信息");
	this.roomId = roomId;

	initData();
	initView();
	setData();
	setTableData();
}

public void initData() {
	// 判断是否为null
	if (mStudentLogic == null || mDormLogic == null)
		return;

	// 根据宿舍号获取入住的学生信息
	stuList = mStudentLogic.getStudentInfoListWithRoomId(roomId);
	havaCount = stuList.size();

	// 获取宿舍可入住的人数
	total = mDormLogic.getCountWithRoomId(roomId);
}

public void initView() {
	this.setSize(520, 520);
	FrameUtil.windowToCenterWithWindow(this);
	mainPanel.setLayout(null);
	this.add(mainPanel);

	roomInfoLabel = new JLabel();
	roomInfoLabel.setBounds(30, 40, 350, 30);
	roomInfoLabel.setFont(new Font("楷体", Font.BOLD, 15));
	roomInfoLabel.setHorizontalAlignment(JLabel.LEFT);
	mainPanel.add(roomInfoLabel);

	addNewBtn = new JButton("新生入住");
	addNewBtn.setBounds(roomInfoLabel.getX() + roomInfoLabel.getWidth() + 10, roomInfoLabel.getY(), 100, 30);
	addNewBtn.setActionCommand("add");
	addNewBtn.setFont(new Font("楷体", Font.BOLD, 15));
	addNewBtn.setHorizontalAlignment(JLabel.CENTER);
	addNewBtn.addActionListener(this);
	mainPanel.add(addNewBtn);

	JTableHeader mHeader = stuTable.getTableHeader();
	mHeader.setBackground(Color.GRAY);
	mHeader.setForeground(Color.WHITE);
	mHeader.setFont(new Font("楷体", Font.BOLD, 16));

	// 设置表头是否可以重新排序
	mHeader.setReorderingAllowed(false);
	// 设置表头是否可以调整大小;
	mHeader.setResizingAllowed(false);

	stuTable.setRowHeight(22); // 默认是16px
	stuTable.setGridColor(Color.gray);

	// 这是单元格内容居中
	DefaultTableCellRenderer dr = (DefaultTableCellRenderer) stuTable.getDefaultRenderer(dm.getColumnClass(0));
	dr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);

	JScrollPane mScrollPane = new JScrollPane(stuTable);
	mScrollPane.setBounds(roomInfoLabel.getX(), 90, this.getWidth() - roomInfoLabel.getX() * 2, 320);
	mScrollPane.setAlignmentX(CENTER_ALIGNMENT);
	mScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
	mScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	mainPanel.add(mScrollPane);

	String[] btnText = { "删除", "转出" };
	String[] command = { "delete", "update" };
	// 按钮面板
	JPanel btnPanel = new JPanel();

	// 给面板设置布局管理器为流布局
	btnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 15));
	// 将面板使用边框布局放在窗口的最南边
	add(btnPanel, BorderLayout.SOUTH);

	for (int i = 0; i < btnText.length; i++) {
		JButton jb = new JButton(btnText[i]);
		jb.setActionCommand(command[i]);
		jb.setPreferredSize(new Dimension(80, 40));
		jb.addActionListener(this);
		btnPanel.add(jb);
	}

	this.setResizable(false);
	this.setVisible(true);
	// 关闭窗口时不能使用EXIT_ON_CLOSE
	this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}

public void setData() {
	// 宿舍号为401,已住2人,还可以容纳2人
	String message = "<html><body>宿舍号为<font color = 'red' size = '5'>" + roomId + "</font>,"
			+ "已住<font color = 'red' size = '5'>" + havaCount + "</font>人," + "还可以容纳<font color = 'red' size = '5'>"
			+ (total - havaCount) + "</font>人</body></html>";
	roomInfoLabel.setText(message);

	// 如果已经住满,则不让继续入住
	if (havaCount == total)
		addNewBtn.setEnabled(false);
}

public void setTableData() {
	// 将信息添加至列表
	if (stuList.isEmpty())
		return;

	// for-each循环
	for (Student mStudent : stuList) {
		addStudentInfoToRow(mStudent);
	}
}

// 添加
public void addStudentInfoToRow(Student stu) {
	dm.addRow(stu.getVector());
}

// 删除
public void removeStudentInfoWithIndex(int rowIndex) {
	dm.removeRow(rowIndex);
}

// 根据索引获取学生的信息
public Student getStudentInfoWithIndex(int rowIndex) {
	// getValueAt(int row, int column):row和 column返回单元格的属性值。 下标从0开始

	String sname = (String) dm.getValueAt(rowIndex, 0);
	String cardNumber = (String) dm.getValueAt(rowIndex, 1);
	String gender = (String) dm.getValueAt(rowIndex, 2);
	int age = (int) dm.getValueAt(rowIndex, 3);

	Student stu = new Student();
	stu.setSname(sname);
	stu.setCardNumber(cardNumber);
	stu.setGender(gender);
	stu.setAge(age);

	// 根据获取的额数据,创建学生对象
	return stu;
}

// 刷新界面
public void refreshUI() {
	initData();
	setData();
	// setTableData();
}

@Override
public void actionPerformed(ActionEvent e) {
	// TODO Auto-generated method stub
	String command = e.getActionCommand();

	// 添加
	if (command.equals("add")) {
		new AddStudentDialog(ScholasticInfoTableDialog.this);
		return;
	} else {
	}

	// 获取选中的行号
	int rowIndex = stuTable.getSelectedRow();
	if (rowIndex == -1) {
		JOptionPane.showMessageDialog(this, "请选择需要操作的行!");
		return;
	}

	// 先删除数据库:身份证号码
	Student stu = getStudentInfoWithIndex(rowIndex);

	// 转出
	if (command.equals("update")) {
		if (stu != null)
			new UpdateRoomDialog(ScholasticInfoTableDialog.this, stu);
	}

	// 删除操作
	if (command.equals("delete")) {
		if (stu != null) {

			int dcount = mStudentLogic.deleteStudentInfoWithCardNumber(stu.getCardNumber());

			if (dcount > 0) {
				// 删除表格数据
				removeStudentInfoWithIndex(rowIndex);
				// 刷新界面
				refreshUI();
			} else

				JOptionPane.showMessageDialog(this, "删除失败!");
		}
	}
}

public void showMessage(String name) {
	JOptionPane.showMessageDialog(ScholasticInfoTableDialog.this, name + ",对不起,您没有此操作权限!");
}

}

package com.imti.ui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.imti.entity.Student;
import com.imti.logic.DormLogic;
import com.imti.logic.StudentLogic;
import com.imti.util.FrameUtil;

public class UpdateRoomDialog extends JDialog implements ActionListener
{
private static final long serialVersionUID = 1L;

private JPanel mainPanel = new JPanel();

private JTextField cardIdField = new JTextField();
private JTextField nameField = new JTextField();
private JTextField ageField = new JTextField();
private JTextField sexField = new JTextField();
private JComboBox<Object> roomNumComboBox = new JComboBox<Object>();

//
private Student mStudent = null;
private List<Integer> roomNumList = new ArrayList<Integer>();

// 创建业务逻辑DormLogic层对象
private DormLogic mDormLogic = new DormLogic();
private StudentLogic mStudentLogic = new StudentLogic();

private List<Student> stuList = new ArrayList<>();
// 表示当前房间已经入住的学生,和总人数
private int havaCount = 0;
private int total = 0;
private int roomId = 0;

private ScholasticInfoTableDialog window;

public UpdateRoomDialog(ScholasticInfoTableDialog window, Student mStudent) {
	// TODO Auto-generated constructor stub
	super(window, "更换宿舍");
	this.window = window;
	this.mStudent = mStudent;

	initData();

	initView();
	setData();
}

// 获取数据
public void initData() {
	if (mDormLogic == null || mStudentLogic == null)
		return;

	// 根据性别获取可以入住的宿舍号
	roomNumList = mDormLogic.getRoomIdWithType(mStudent.getGender());
}

// 验证是否已经入住满
public boolean isCheckFull(int roomId) {
	// 根据宿舍号获取入住的学生信息
	stuList = mStudentLogic.getStudentInfoListWithRoomId(roomId);
	havaCount = stuList.size();

	// 获取宿舍可入住的人数
	total = mDormLogic.getCountWithRoomId(roomId);

	// 如果相等,则表示入住满
	if (havaCount == total) {
		return true;
	}
	return false;
}

// 设置数据
public void setData() {
	if (mStudent == null)
		return;

	nameField.setText(mStudent.getSname());
	cardIdField.setText(mStudent.getCardNumber());
	sexField.setText(mStudent.getGender());
	ageField.setText(mStudent.getAge() + "");

	// 显示可以入住的宿舍号
	if (roomNumComboBox.getItemCount() > 0)
		roomNumComboBox.removeAllItems();

	for (Integer roomId : roomNumList) {
		roomNumComboBox.addItem(roomId);
	}
}

// 初始化view
public void initView() {
	this.setSize(500, 450);
	FrameUtil.windowToCenterWithWindow(this);
	mainPanel.setLayout(null);
	this.add(mainPanel);

	JLabel label = new JLabel("更换宿舍");
	label.setBounds(50, 20, this.getWidth() - 100, 40);
	label.setFont(new Font("楷体", Font.BOLD, 15));
	label.setHorizontalAlignment(JLabel.CENTER);
	mainPanel.add(label);

	JPanel contentPanel = new JPanel();
	contentPanel.setLocation(50, label.getHeight() + label.getY());
	contentPanel.setBounds(label.getX(), label.getHeight() + label.getY() + 10, label.getWidth(), 280);
	contentPanel.setLayout(new GridLayout(5, 2, 10, 15));
	mainPanel.add(contentPanel);

	JLabel nameLabel = new JLabel("学生姓名:");
	nameLabel.setHorizontalAlignment(JLabel.CENTER);
	contentPanel.add(nameLabel);

	nameField.setPreferredSize(new Dimension(60, 15));
	contentPanel.add(nameField);
	nameField.setEditable(false);

	JLabel idLabel = new JLabel("身份证号:");
	idLabel.setHorizontalAlignment(JLabel.CENTER);
	contentPanel.add(idLabel);

	cardIdField.setPreferredSize(new Dimension(60, 15));
	contentPanel.add(cardIdField);
	cardIdField.setEditable(false);

	JLabel subLabel = new JLabel("性别:");
	subLabel.setHorizontalAlignment(JLabel.CENTER);
	contentPanel.add(subLabel);

	sexField.setPreferredSize(new Dimension(60, 15));
	contentPanel.add(sexField);
	sexField.setEditable(false);

	JLabel ageLabel = new JLabel("年龄:");
	ageLabel.setHorizontalAlignment(JLabel.CENTER);
	contentPanel.add(ageLabel);
	ageField.setPreferredSize(new Dimension(60, 15));
	contentPanel.add(ageField);
	ageField.setEditable(false);

	JLabel roomLabel = new JLabel("宿舍号:");
	roomLabel.setHorizontalAlignment(JLabel.CENTER);
	contentPanel.add(roomLabel);

	roomNumComboBox.setPreferredSize(new Dimension(60, 15));
	contentPanel.add(roomNumComboBox);

	// 按钮
	String[] btnText = { "确定", "取消" };
	JPanel btnPanel = new JPanel();
	btnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 15));
	add(btnPanel, BorderLayout.SOUTH);
	for (int i = 0; i < btnText.length; i++) {
		JButton jb = new JButton(btnText[i]);
		jb.addActionListener(this);
		btnPanel.add(jb);
	}

	this.setResizable(false);
	this.setVisible(true);

	// 关闭窗口时不能使用EXIT_ON_CLOSE
	this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}

@Override
public void actionPerformed(ActionEvent e) {
	// TODO Auto-generated method stub

	String text = ((JButton) e.getSource()).getText();
	if (text.equals("确定")) {

		/**
		 * 1.先判断当前宿舍是否已注满 2.跟新数据库的操作 3.删除表中当前房间的学生 4.更新显示信息
		 * 
		 * 如果转入的是预留宿舍,则需要更新宿舍类型
		 */
		// 1.判断是否入住满
		int roomId = (int) roomNumComboBox.getSelectedItem();
		boolean isFull = isCheckFull(roomId);
		System.out.println("是否住满:" + isFull);
		if (isFull) {
			JOptionPane.showMessageDialog(this, "对不起,此房间已经住满!");
			return;
		}

		// 2.跟新数据库的操作
		// 获取did
		int did = mDormLogic.getDidWithRoomId(roomId);
		int ucount = mStudentLogic.updateStudentDidWithCardNumber(did, mStudent.getCardNumber());

		if (ucount > 0) {
			// 3. 如果转入的是预留宿舍,则需要更新宿舍类型
			int count = mDormLogic.updateDormTypeWhitDid(mStudent.getGender(), did);
			System.out.println("更新成功!");

			// 3.删除表中当前房间的学生
			// window.removeStudentInfoWithIndex(rowIndex);

			// 4.更新显示信息
			window.refreshUI();
		}

	} else if (text.equals("取消")) {
	}

	this.dispose();
}

}

package com.imti.ui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.imti.entity.Student;
import com.imti.logic.DormLogic;
import com.imti.logic.StudentLogic;
import com.imti.util.FrameUtil;

/**

  • 学生入住
    */
    public class AddStudentDialog extends JDialog implements ActionListener, ItemListener
    {
    private static final long serialVersionUID = 1L;

    private JPanel mainPanel = new JPanel();

    private JTextField IdField = new JTextField();
    private JTextField nameField = new JTextField();
    private JTextField ageField = new JTextField();

    private JComboBox sexComboBox = new JComboBox();
    private JComboBox roomNumComboBox = new JComboBox();

    // 实例化业务逻辑层对象
    private DormLogic mDormLogic = new DormLogic();

    public AddStudentDialog(Window window) {
    // TODO Auto-generated constructor stub
    this.setTitle(“新生入住”);
    initView();
    setData();
    }

    // 设置data
    public void setData() {
    sexComboBox.setSelectedItem(“女”);
    }

    // 根据性别,显示可入住的房间号码
    public void showRoomNumsWithGender(String gender) {
    if (mDormLogic == null || roomNumComboBox == null) {
    System.out.println(“对象为空!”);
    return;
    }

     // 清除下拉列表数据
     if (roomNumComboBox.getItemCount() > 0)
     	roomNumComboBox.removeAllItems();
    
     // 获取数据
     List<Integer> roomIdList = mDormLogic.getRoomIdWithType(gender);
    
     // System.out.println("roomIdList:" + roomIdList);
     // 将值设置给下拉列表
     for (Integer roomId : roomIdList) {
     	roomNumComboBox.addItem(roomId);
     }
    

    }

    // 初始化view
    public void initView() {
    this.setSize(500, 450);
    FrameUtil.windowToCenterWithWindow(this);
    mainPanel.setLayout(null);
    this.add(mainPanel);

     JLabel label = new JLabel("新生入住");
     label.setBounds(50, 20, this.getWidth() - 100, 40);
     label.setFont(new Font("楷体", Font.BOLD, 15));
     label.setHorizontalAlignment(JLabel.CENTER);
     mainPanel.add(label);
    
     JPanel contentPanel = new JPanel();
     contentPanel.setLocation(50, label.getHeight() + label.getY());
     contentPanel.setBounds(label.getX(), label.getHeight() + label.getY() + 10, label.getWidth(), 280);
     contentPanel.setLayout(new GridLayout(5, 2, 10, 15));
     mainPanel.add(contentPanel);
    
     JLabel nameLabel = new JLabel("学生姓名:");
     nameLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(nameLabel);
    
     nameField.setPreferredSize(new Dimension(60, 15));
     contentPanel.add(nameField);
    
     JLabel idLabel = new JLabel("身份证号:");
     idLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(idLabel);
    
     IdField.setPreferredSize(new Dimension(60, 15));
     contentPanel.add(IdField);
    
     JLabel subLabel = new JLabel("性别:");
     subLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(subLabel);
    
     sexComboBox.setPreferredSize(new Dimension(60, 15));
     sexComboBox.addItem("男");
     sexComboBox.addItem("女");
     sexComboBox.addItemListener(this);
     contentPanel.add(sexComboBox);
    
     JLabel ageLabel = new JLabel("年龄:");
     ageLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(ageLabel);
     ageField.setPreferredSize(new Dimension(60, 15));
     contentPanel.add(ageField);
    
     JLabel roomLabel = new JLabel("宿舍号:");
     roomLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(roomLabel);
    
     roomNumComboBox.setPreferredSize(new Dimension(60, 15));
     contentPanel.add(roomNumComboBox);
    
     // 按钮
     String[] btnText = { "确定", "取消" };
     String[] commandText = { "ok", "cancel" };
     JPanel btnPanel = new JPanel();
     btnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 15));
     add(btnPanel, BorderLayout.SOUTH);
     for (int i = 0; i < btnText.length; i++) {
     	JButton jb = new JButton(btnText[i]);
     	jb.setActionCommand(commandText[i]);
     	jb.addActionListener(this);
     	btnPanel.add(jb);
     }
    
     this.setResizable(false);
     this.setVisible(true);
    
     // 关闭窗口时不能使用EXIT_ON_CLOSE
     setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    

    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

     String command = e.getActionCommand();
     if (command.equals("ok")) {
     	String sname = nameField.getText().trim();
     	String cardNumber = IdField.getText().trim();
     	String gender = (String) sexComboBox.getSelectedItem();
    
     	String ageStr = ageField.getText().trim();
     	System.out.println("ageStr=" + ageStr);
     	int age = ageStr != null && !ageStr.equals("") ? Integer.parseInt(ageStr) : 0;
    
     	// 通过roomid获取did
     	int roomId = (int) roomNumComboBox.getSelectedItem();
    
     	// 通过roomid获取did
     	int did = mDormLogic.getDidWithRoomId(roomId);
     	System.out.println("did=" + did);
    
     	// 将数据进行封装
     	Student stu = new Student(did, sname, cardNumber, gender, age);
    
     	// 将数据存放数据库
     	StudentLogic mStudentLogic = new StudentLogic();
     	int icount = mStudentLogic.insertStudentInfo(stu);
    
     	if (icount > 0)
     		JOptionPane.showMessageDialog(this, "入住成功!");
     	else
     		JOptionPane.showMessageDialog(this, "入住失败!");
     }
    

    }

    @Override
    public void itemStateChanged(ItemEvent e) {
    // TODO Auto-generated method stub
    if (e.getStateChange() == ItemEvent.SELECTED) {
    String item = (String) e.getItem();
    showRoomNumsWithGender(item);
    }
    }
    }

package com.imti.ui;

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import com.imti.entity.Admin;
import com.imti.logic.AdminLogic;
import com.imti.util.FrameUtil;

/**

  • 用户登录界面
    */
    public class LoginFrame extends JFrame implements ActionListener
    {
    private static final long serialVersionUID = 1L;

    // private JPanel mainPanel = null;
    private JTextField nameField = null;
    private JTextField passwordField = null;

    public LoginFrame() {
    // TODO Auto-generated constructor stub
    initView();
    }

    public void initView() {
    this.setSize(400, 320);
    this.setTitle(“登陆”);
    FrameUtil.windowToCenterWithWindow(this);

     JPanel mainPanel = new JPanel();
     mainPanel.setLayout(null);
     this.add(mainPanel);
    
     JLabel label = new JLabel("宿舍管理系统");
     label.setBounds(50, 30, this.getWidth() - 100, 40);
     label.setFont(new Font("楷体_gb2312", Font.BOLD, 26));
     label.setHorizontalAlignment(JLabel.CENTER);
     mainPanel.add(label);
    
     JPanel contentPanel = new JPanel();
     contentPanel.setLocation(50, label.getHeight() + label.getY());
     contentPanel.setBounds(label.getX(), label.getHeight() + label.getY() + 10, label.getWidth(), 280);
     contentPanel.setLayout(null);
     mainPanel.add(contentPanel);
    
     JLabel nameLabel = new JLabel("用户名");
     nameLabel.setBounds(5, 20, 80, 40);
     nameLabel.setFont(new Font("楷体", Font.BOLD, 18));
     nameLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(nameLabel);
    
     nameField = new JTextField();
     nameField.setBounds(100, 20, 180, 40);
     contentPanel.add(nameField);
    
     JLabel passLabel = new JLabel("密码");
     passLabel.setBounds(5, 70, 80, 40);
     passLabel.setFont(new Font("楷体", Font.BOLD, 18));
     passLabel.setHorizontalAlignment(JLabel.CENTER);
     contentPanel.add(passLabel);
    
     passwordField = new JTextField();
     // passwordField.setText("tiger");
     passwordField.setBounds(100, 70, 180, 40);
     contentPanel.add(passwordField);
    
     JButton loginBtn = new JButton("登陆");
     loginBtn.setSize(100, 40);
     loginBtn.setLocation((contentPanel.getWidth() - loginBtn.getWidth()) / 2, 130);
     loginBtn.setActionCommand("login");
     contentPanel.add(loginBtn, FlowLayout.CENTER);
     loginBtn.addActionListener(this);
    
     this.setResizable(false);
     this.setVisible(true);
     this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    

    }

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

     String command = e.getActionCommand();
    
     // 获取信息
     String name = nameField.getText().trim();
     String password = passwordField.getText().trim();
    
     // 验证
     Admin mAdmin = new Admin();
     mAdmin.setAname(name);
     mAdmin.setPassword(password);
     System.out.println("账户:" + name + ",密码:" + password);
    
     if (command.equals("login")) {
    
     	// 实例化业务逻辑层对象
     	AdminLogic mAdminLogic = new AdminLogic();
    
     	// 根据条件查询管理员是否存在
     	Admin myAdmin = mAdminLogic.checkUser(mAdmin);
    
     	if (myAdmin == null) {
     		JOptionPane.showMessageDialog(this, "管理员不存在或账户密错误!");
     		return;
     	}
    
     	// 进入宿舍信息界面
     	new RoomNumFrame();
     	this.dispose();
     }
    

    }
    }

package com.imti.ui;

public class Main
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
new LoginFrame();
}
}

==Util工具层=
package com.imti.util;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Window;

public class FrameUtil
{
public static void windowToCenterWithWindow(Window window) {
// 获取屏幕的宽和高
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;

	// System.out.println("屏幕的宽:" + screenWidth); // 1440
	// System.out.println("屏幕的高:" + screenHeight); // 900

	// 计算坐标
	int x = (screenWidth - window.getWidth()) / 2;
	int y = (screenHeight - window.getHeight()) / 2;

	// 设置坐标
	window.setLocation(x, y);
}

}

package com.imti.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*

  • 数据库管理工具类:

  • 1.连接数据库

  • 2.关闭数据库

  • */
    public class JDBCManager
    {
    private static final String DRIVER = “oracle.jdbc.driver.OracleDriver”;
    private static final String URL = “jdbc:oracle:thin:@localhost:1521:orcl”;
    private static final String USER = “scott”;
    private static final String PASSWORD = “tiger”;

    private static Connection conn = null;

    // 加载驱动
    static {
    try {
    Class.forName(DRIVER);
    System.out.println(“驱动加载成功!”);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    // 获取连接
    public static Connection getConnection() {
    try {
    conn = DriverManager.getConnection(URL, USER, PASSWORD);
    System.out.println(“连接成功:” + conn);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return conn;
    }

    // 关闭数据库
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
    try {
    if (rs != null)
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    if (stmt != null)
    stmt.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    if (conn != null)
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    public static void close(Connection conn, PreparedStatement stmt, ResultSet rs) {
    try {
    if (rs != null)
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    if (stmt != null)
    stmt.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    if (conn != null)
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

package com.imti.util;

import java.awt.Window;

import javax.swing.JFrame;

/*

  • 创建一个公共窗口
  • */
    public class BaseFrame
    {
    public static void createBaseFrame(Window window, int width, int height) {
    window.setSize(width, height);
    FrameUtil.windowToCenterWithWindow(window);
    ((JFrame) window).setResizable(false);
    ((JFrame) window).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值