📄 studentuniversquerydialog.java
字号:
package com.hb.stumanagesys.universquery;
import com.cloudgarden.layout.AnchorConstraint;
import com.cloudgarden.layout.AnchorLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import com.hb.jdbcconnct.JdbcConnct;
//import com.jgoodies.forms.layout.FormLayout;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class StudentUniversQueryDialog extends javax.swing.JDialog {
{
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getCrossPlatformLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
}
private JPanel studentUniversPanel1;//定义学生综合管理面板
private JLabel sUMLabel1;
private ButtonGroup sUMbuttonGroup1;
private JButton sUMButton1;//定义 查询 button
private JButton quitButton;//定义退出button
private JCheckBox misCheckBox;//定义模糊查询的combox
private JComboBox conditionComboBox;//定义查询条件的下拉框
private JTable sUMTable1;//显示数据的表格
private JScrollPane sUMScrollPane1;
private JTextField sUMTextField1;//查询条件输入的文本框
DefaultTableModel sUMTable1Model; //表的model
private JTabbedPane stuUniversQueryTabbedPane;
private JPanel stuQureyPanel;
/**
* 程序的入口方法
*/
public static void main(String[] args) {
//新建一个JFrame 用来构造对话框
JFrame frame = new JFrame();
StudentUniversQueryDialog inst = new StudentUniversQueryDialog(frame);
inst.setVisible(true);//设置文本框可见
}
public StudentUniversQueryDialog(JFrame frame) {
super(frame);
initGUI();
}
private void initGUI() {
try {
{
this.setTitle("\u5b66\u751f\u7efc\u5408\u67e5\u8be2");
{
{
sUMbuttonGroup1 = new ButtonGroup();
}
studentUniversPanel1 = new JPanel();
getContentPane().add(studentUniversPanel1, BorderLayout.CENTER);
//studentUniversPanel1.setLayout(studentUniversPanelLayout);
studentUniversPanel1.setBackground(new java.awt.Color(
185,
185,
255));
studentUniversPanel1.setLayout(null);
{
stuUniversQueryTabbedPane = new JTabbedPane();
studentUniversPanel1.add(stuUniversQueryTabbedPane);
stuUniversQueryTabbedPane.setBounds(21, 0, 546, 427);
{
stuQureyPanel = new JPanel();
stuUniversQueryTabbedPane.addTab("学生查询", null, stuQureyPanel, null);
stuQureyPanel.setPreferredSize(new java.awt.Dimension(541, 401));
stuQureyPanel.setLayout(null);
{
sUMLabel1 = new JLabel();
stuQureyPanel.add(sUMLabel1);
sUMLabel1.setText("\u6309\uff1a");
sUMLabel1.setBounds(21, 28, 35, 28);
}
{
sUMScrollPane1 = new JScrollPane();
stuQureyPanel.add(sUMScrollPane1);
sUMScrollPane1.setBounds(21, 77, 497, 273);
{
sUMTable1Model = new DefaultTableModel(
new String[][] {},
new String[] { "学号", "姓名", "性别", "年龄",
"出生日期", "政治面貌", "联系方式", "籍贯",
"入学时间", "状态", "班级名称", "专业名称",
"教师名称" }) {
public boolean isCellEditable(
int row,
int column) {
return false;
}
};
sUMTable1 = new JTable();
sUMScrollPane1.setViewportView(sUMTable1);
BoxLayout sUMTable1Layout = new BoxLayout(
sUMTable1,
javax.swing.BoxLayout.Y_AXIS);
sUMTable1.setLayout(sUMTable1Layout);
sUMTable1.setModel(sUMTable1Model);
sUMTable1.getTableHeader()
.setPreferredSize(
new java.awt.Dimension(505, 14));
BorderLayout tableHeaderLayout = new BorderLayout();
sUMTable1.getTableHeader().setLayout(
tableHeaderLayout);
sUMTable1.setBounds(32, 78, 501, 195);
sUMTable1.setDoubleBuffered(true);
//sUMTable1.setCellSelectionEnabled(true);
}
}
{
ComboBoxModel conditionComboBoxModel = new DefaultComboBoxModel(
new String[] { "全部", "学号", "姓名", "年龄" });
conditionComboBox = new JComboBox();
stuQureyPanel.add(conditionComboBox);
conditionComboBox
.setModel(conditionComboBoxModel);
conditionComboBox.setBounds(77, 28, 98, 28);
conditionComboBox
.addActionListener(new ActionListener() {
public void actionPerformed(
ActionEvent evt) {
conditionComboBoxActionPerformed(evt);
}
});
}
{
sUMTextField1 = new JTextField();
stuQureyPanel.add(sUMTextField1);
sUMTextField1.setBounds(196, 28, 98, 28);
sUMTextField1.setEditable(false);
}
{
misCheckBox = new JCheckBox();
stuQureyPanel.add(misCheckBox);
misCheckBox.setText("\u6a21\u7cca\u67e5\u8be2");
misCheckBox.setBounds(315, 35, 70, 21);
misCheckBox.setEnabled(false);
}
{
sUMButton1 = new JButton();
stuQureyPanel.add(sUMButton1);
sUMButton1.setText("\u67e5\u8be2");
sUMButton1.setBounds(406, 35, 70, 21);
sUMButton1
.addActionListener(new ActionListener() {
public void actionPerformed(
ActionEvent evt) {
sUMButton1ActionPerformed(evt);
}
});
}
{
quitButton = new JButton();
stuQureyPanel.add(quitButton);
quitButton.setText("\u9000\u51fa");
quitButton.setBounds(441, 364, 70, 21);
quitButton
.addActionListener(new ActionListener() {
public void actionPerformed(
ActionEvent evt) {
quitButtonActionPerformed(evt);
}
});
}
}
}
}
}
this.setSize(600,475);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 综合查询
*/
public void initialStudentTable(String sql1)
{
//实例化一个 vector
Vector vecData = new Vector();
int row = 0;
try
{
//创建并获得一个连接
Connection conn = JdbcConnct.fetchConnection();
//创建statement对象
Statement stmt = conn.createStatement();
//查询的sql语句
String sql = "select studentid,stuname,gender,age,birthday," +
"polistatus,contactway,native,entertime,status,classname,majorname,teachername from stu_view"+sql1;
//获取结果集
ResultSet rs = stmt.executeQuery(sql);
//对结果集处理。
while(rs.next()){
String polis = rs.getString("polistatus");
//将选择的政治面貌从数据库的数字对应出文字显示
if (polis == null) {
polis = "无";
} else if (polis.equals("1")) {
polis = "共青团员";
} else if (polis.equals("2")) {
polis = "党员";
} else if (polis.equals("3")) {
polis = "群众";
} else {
polis = "其他党派";
}
//将选择的学生状态从数据库的数字对应出文字显示
String status = rs.getString("status");
// System.out.println(polis);
if (status == null) {
status = "无";
} else if (status.equals("1")) {
status = "在读";
} else if (status.equals("2")) {
status = "退学";
} else if (status.equals("3")) {
status = "休学";
} else if (status.equals("4")) {
status = "毕业";
} else {
status = "其它";
}
//将选择的性别从数据库中的字母对应出文字显示
String gender = rs.getString("gender");
System.out.println(gender);
//得到性别
if(null==gender)
gender = "null";
if(gender.equals("M"))
gender = "男";
else if(gender.equals("W"))
gender = "女";
//将信息加入向量中
vecData.addElement((String)rs.getString("studentid"));
vecData.addElement((String)rs.getString("stuname"));
vecData.addElement(gender);
vecData.addElement((String)rs.getString("age"));
vecData.addElement((String)rs.getString("birthday"));
vecData.addElement(polis);
vecData.addElement((String)rs.getString("contactway"));
vecData.addElement((String)rs.getString("native"));
vecData.addElement((String)rs.getString("entertime"));
vecData.addElement(status);
vecData.addElement((String)rs.getString("classname"));
vecData.addElement((String)rs.getString("majorname"));
vecData.addElement((String)rs.getString("teachername"));
}
//获取数据的行数
row = vecData.size()/13;
//判断是否存在
if(row!=0){
String [] title=new String[]{ "学号", "姓名", "性别", "年龄", "出生日期",
"政治面貌", "联系方式", "籍贯", "入学时间", "状态" , "班级名称" , "专业名称" , "教师名称" };
String[][] aa = new String [row][13] ;
//把数据存放到数组中
for(int i=0;i<row;i++)
{
for(int k=0;k<13;k++)
{
aa[i][k] = (String)vecData.elementAt(i*13+k);
}
}
//定义dataModel把数据存放到表格中,并设置表格不可编辑
DefaultTableModel dataModel = new DefaultTableModel(aa,title){
//设置table不可编辑
public boolean isCellEditable(int row,int column){
return false;
}
};
sUMTable1.setModel(dataModel);
sUMTable1.setRowHeight(20);
//System.out.println(dataModel);
// System.out.println( commentTable.getModel());
}
else //如果没有数据,提示数据不存在。
{
sUMTable1.setModel(sUMTable1Model);
sUMTable1.setRowHeight(20);
JOptionPane.showMessageDialog(this, "对不起,您查找的数据不存在!!");
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "查询出错");
//e.printStackTrace();
}
}
/*
* 查询模块
*/
private void sUMButton1ActionPerformed(ActionEvent evt) {
//判断是否模糊查询
boolean flag = this.misCheckBox.isSelected();
//获取选择的查询条件
String choice = (String) this.conditionComboBox.getSelectedItem();
//获取输入的查询条件
String input = this.sUMTextField1.getText().trim();
if(flag == false)
{
//判断选择是否为全部
if(choice.equals("全部"))
{
//查询全部的sql语句
String sql = " order by studentid asc";
//查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
//判断选择是否为学号
else if(choice.equals("学号"))
{
//按全部查询的sql语句
String sql = " where studentid ="+input;
//查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
//判断选择是否为姓名
else if(choice.equals("姓名"))
{
//按姓名查询的sql语句
String sql = " where stuname '"+input+"'";
////查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
//判断选择是否为年龄
else if(choice.equals("年龄"))
{
//按照年龄查询全部的sql语句
String sql = " where age ="+input;
////查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
}
else //如果是模糊查询
{
if(choice.equals("学号"))
{
//按照学号模糊查询的sql语句
String sql = " where studentid like '%"+input+"%'";
////查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
else if(choice.equals("姓名"))
{
//按照姓名模糊查询的sql语句
String sql = " where stuname like '%"+input+"%'";
////查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
else if(choice.equals("年龄"))
{
//按照年龄模糊查询的sql语句
String sql = " where age like'%"+input+"%'";
////查询数据,并不查询的数据在表格中显示
initialStudentTable(sql);
}
}
}
private void conditionComboBoxActionPerformed(ActionEvent evt) {
//定义choice从conditionComboBox接收数据
String choice = (String) this.conditionComboBox.getSelectedItem();
//当选择全部时 sUMTextField1 不可用
if(choice.endsWith("全部"))
{
this.misCheckBox.setSelected(false);
this.sUMTextField1.setEnabled(false);
this.misCheckBox.setEnabled(false);
}
//当choice为其它时 可以填入相应的信息
else
{
this.sUMTextField1.setEnabled(true);
this.sUMTextField1.setEditable(true);
this.misCheckBox.setEnabled(true);
}
}
/*
* 退出按钮
*/
private void quitButtonActionPerformed(ActionEvent evt)
{
this.dispose();//退出
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -