package net.bfsoft.sms.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
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.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import net.bfsoft.sms.dao.JdbcOperation;
import net.bfsoft.sms.model.Student;
import net.bfsoft.sms.module.FreeChart;
import net.bfsoft.sms.module.ExportToExcle;
import net.bfsoft.sms.service.CheckSevice;
import net.bfsoft.sms.service.StudentSevice;
@SuppressWarnings("serial")
public class StuMisMainWindow extends JFrame {
private Image image=new ImageIcon("images/login.jpg").getImage();
/**
* JTabbedPane
* 一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换
*
* 通过使用 addTab 和 insertTab 方法将选项卡/组件添加到 TabbedPane 对象中。
* 选项卡通过对应于添加位置的索引来表示,其中第一个选项卡的索引为 0,
* 最后一个选项卡的索引为选项卡数减 1。
* TabbedPane 使用 SingleSelectionModel 来表示选项卡索引集和当前所选择的索引。
* 如果选项卡数大于 0,
* 则总会有一个被选定的索引,此索引默认被初始化为第一个选项卡。
* 如果选项卡数为 0,则所选择的索引为 -1。
*/
private JTabbedPane leftPagePane = new JTabbedPane();
private JTabbedPane rightPagePane = new JTabbedPane();
private JPanel selectPanel = new JPanel();
private JPanel northPanel = new JPanel();
/**
* DefaultTableModel
* 这是 TableModel 的一个实现,
* 它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成
*/
private DefaultTableModel model;
/**
* JTable 用来显示和编辑常规二维单元表
* JTable 有很多用来自定义其呈现和编辑的工具,同时提供了这些功能的默认设置,
* 从而可以轻松地设置简单表。例如,要设置一个 10 行 10 列的表:
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 10; }
public int getRowCount() { return 10;}
public Object getValueAt(int row, int col)
{ return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
*
*/
private JTable table;
private StudentSevice sevice = new StudentSevice();
private CheckSevice check = new CheckSevice();
private JdbcOperation dao = new JdbcOperation();
private JTextField tfSelectSid = new JTextField(10);
private JTextField tfSelectName = new JTextField(10);
private JTextField tfAgeFrom = new JTextField(10);
private JTextField tfAgeTo = new JTextField(10);
private JTextField tfAddSid = new JTextField(10);
private JTextField tfAddName = new JTextField(20);
private JTextField tfAge = new JTextField(10);
private JTextField tfPhone = new JTextField(20);
private JRadioButton rbtFemale = new JRadioButton();
private JRadioButton rbtMale = new JRadioButton();
private ButtonGroup bgp = new ButtonGroup();
@SuppressWarnings("rawtypes")
private ArrayList alist;
public StuMisMainWindow() {
this.setSize(1000, 600);
initLeftPagePane();
initRightPagePane();
/**
* JSplitPane 用于分隔两个(只能两个)Component。
* 两个 Component 图形化分隔以外观实现为基础,
* 并且这两个 Component 可以由用户交互式调整大小。
*/
JSplitPane splitePane = new JSplitPane();
splitePane.setLeftComponent(leftPagePane);
splitePane.setRightComponent(rightPagePane);
splitePane.setEnabled(false);
JLabel label = new JLabel("<html><h1>学生管理系统</h1></html>");
northPanel.add(label);
this.add(northPanel, BorderLayout.NORTH);
this.add(splitePane);
this.setTitle("第一个项目");
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setVisible(true);
this.setIconImage(image);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// 左边部分初始化
public void initLeftPagePane() {
JPanel leftPanel = new JPanel();
initselectPanel();
JPanel addPanel = addPanel();
leftPanel.setLayout(new GridLayout(2, 1));
leftPanel.add(selectPanel);
leftPanel.add(addPanel);
int w = this.getWidth();
int h = this.getHeight();
leftPanel.setPreferredSize(new Dimension(w / 4, h));
leftPagePane.add("基本信息操作", leftPanel);
}
// 初始化查找信息部分
public void initselectPanel() {
JLabel lbSid = new JLabel("学号:");
JLabel lbName = new JLabel("姓名:");
JLabel lbAge = new JLabel("年龄:");
JLabel lb = new JLabel("--------");
JButton btSelect = new JButton("开始查找");
btSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
selectStuInfo();
}
});
InputMap inputMapSelect = btSelect
.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMapSelect = btSelect.getActionMap();
inputMapSelect.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
"enter");
actionMapSelect.put("enter", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
selectStuInfo();
}
});
selectPanel.setLayout(null);
lbSid.setBounds(15, 25, 50, 30);
tfSelectSid.setBounds(60, 30, 130, 20);
lbName.setBounds(15, 65, 50, 30);
tfSelectName.setBounds(60, 70, 130, 20);
lbAge.setBounds(15, 105, 50, 30);
tfAgeFrom.setBounds(60, 110, 40, 20);
lb.setBounds(110, 105, 40, 30);
tfAgeTo.setBounds(150, 110, 40, 20);
btSelect.setBounds(70, 150, 100, 30);
selectPanel.add(lbSid);
selectPanel.add(tfSelectSid);
selectPanel.add(lbName);
selectPanel.add(tfSelectName);
selectPanel.add(lbAge);
selectPanel.add(tfAgeFrom);
selectPanel.add(tfAgeTo);
selectPanel.add(lb);
selectPanel.add(btSelect);
selectPanel.setBorder(BorderFactory.createTitledBorder(null, "信息查询"));
}
// 左边增加信息部分,算是内部类,所以变量要为final类型
public JPanel addPanel() {
JPanel addPanel = new JPanel();
JLabel lbSid = new JLabel("学号:");
JLabel lbName = new JLabel("姓名:");
JLabel lbAge = new JLabel("年龄:");
JLabel lbSex = new JLabel("性别:");
JLabel lbPhone = new JLabel("电话:");
JLabel lbFemale = new JLabel("男");
JLabel lbMale = new JLabel("女");
JButton btAddMsg = new JButton("增加");
JButton btReset = new JButton("重置");
btAddMsg.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
addInfo();
}
});
/*
* InputMap inputMapAdd =
* btAddMsg.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); ActionMap
* actionMapAdd = btAddMsg.getActionMap();
* inputMapAdd.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),
* "enter"); actionMapAdd.put("enter", new AbstractAction() {
*
* @O
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
StuMis.zip (78个子文件)
StuMis
bin
jdbc.properties 74B
net
bfsoft
sms
dao
JdbcOperation.class 7KB
model
Student.class 2KB
Users.class 893B
test
Test.class 1KB
MySwingTest.class 1KB
KeyStrokeDemo$ColorAction.class 2KB
SimpleDataStruct.class 1KB
Demo.class 1KB
Listener.class 986B
TestEvent.class 1KB
KeyStrokeDemo.class 3KB
TestLayout.class 1KB
KeyBoardListener$1.class 999B
TestBt_Key.class 1KB
TuPanel.class 1KB
P.class 641B
Test$1.class 913B
Demo$1.class 804B
KeyBoardListener.class 929B
NewJFrame.class 2KB
P$1.class 759B
MyJP.class 698B
view
StuMisMainWindow.class 14KB
LoginWindow$2.class 702B
StuMisMainWindow$3.class 805B
StuMisMainWindow$4.class 807B
StuMisMainWindow$1.class 793B
StuMisMainWindow$5.class 1KB
StuMisMainWindow$8.class 2KB
StuMisMainWindow$7.class 1KB
LoginWindow$1.class 732B
StuMisMainWindow$9.class 972B
StuMisMainWindow$2.class 763B
StuMisMainWindow$6.class 818B
LoginWindow$3.class 729B
LoginWindow.class 4KB
module
FreeChart.class 2KB
ExportToExcle.class 2KB
BackgroundPanel.class 730B
service
StudentSevice.class 1KB
TableSevice.class 1KB
CheckSevice.class 1KB
images
login.jpg 65KB
test.xls 14KB
jcommon-1.0.17.jar 303KB
studentInfo.xls 14KB
.settings
org.eclipse.core.resources.prefs 94B
org.eclipse.jdt.core.prefs 598B
src
jdbc.properties 74B
net
bfsoft
sms
dao
JdbcOperation.java 6KB
model
Student.java 2KB
Users.java 543B
test
TestLayout.java 1013B
MySwingTest.java 1KB
TuPanel.java 1KB
NewJFrame.java 1KB
Demo.java 871B
TestEvent.java 2KB
SimpleDataStruct.java 703B
KeyBoardListener.java 869B
TestBt_Key.java 924B
Test.java 789B
KeyStrokeDemo.java 4KB
view
LoginWindow.java 5KB
StuMisMainWindow.java 17KB
module
FreeChart.java 2KB
BackgroundPanel.java 487B
ExportToExcle.java 1KB
service
StudentSevice.java 636B
CheckSevice.java 2KB
TableSevice.java 632B
.project 382B
test.xlsx 14KB
jfreechart-1.0.10.jar 1.25MB
.classpath 443B
doc
mysql.jar 436KB
jxl.jar 709KB
共 78 条
- 1
资源评论
- wangyd26332015-10-04系统值得学习!!
- hylkl942016-11-30值得学习,但是不完善
perist7
- 粉丝: 1
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功