📄 mdb10.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.swing.event.*;
class mdb10 {
int reccount = 0;
int nowrec = 0;
// //////////////////////////////////////////////////用于表一 y1
JLabel id;
JLabel nowreclabel;
JLabel name;
JLabel age;
JLabel addr;
JLabel tel;
JLabel recinfor;// reccount
JTextField mid;
JTextField mname;
JTextField mage;
JTextField maddr;
JTextField mtel;
JTextField recinformation;
JTextField nowrecfield;
// //////////////////////////////////////////////用于表二 y1
JLabel xiaoxue;
JLabel zhongxue;
JLabel daxue;
JTextField mxiaoxue;
JTextField mzhongxue;
JTextField mdaxue;
JTextArea list;
JButton first;
JButton up;
JButton down;
JButton last;
JButton add;
JButton edit;
JButton brow;
JButton mation;
JButton clear;
JButton del;
JButton tofile;
JButton fcolor;
JComboBox ffont;
JComboBox fsize;
JButton tomdb;
JFrame frame;
JPanel pane;
JPanel p;
JPopupMenu popmenu;// 弹出菜单
/**
* 数据库相关内容
*
*/
String url = "jdbc:microsoft:sqlserver://localhost:1043;DatabaseName=yang";// 用于SQL
String classfor = "sun.jdbc.odbc.JdbcOdbcDriver";
String host = "localhost";// 用于SQL
String port = "1433";// 用于SQL
String mdb = "yang";// 用于SQL,ACCESS
String user = "sa";// 用于SQL,ACCESS
String pwd = "";// 用于SQL,ACCESS
String table = "y1";// 用于SQL,ACCESS
String odbc = "yang";// 用于ACCESS
String constr;// 用于ACCESS,SQL
ResultSetMetaData rsmd;
String[][] biao;
ResultSet rec;
Statement st;
Connection conn;
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public mdb10() {
frame = new JFrame("数据库和文本编辑器");
/**
*
* 标签和字段 表一
*/
id = new JLabel("ID", JLabel.RIGHT);
id.setBounds(new Rectangle(0, 0, 100, 50));
name = new JLabel("姓名", JLabel.RIGHT);
name.setBounds(new Rectangle(0, 60, 100, 50));
age = new JLabel("年龄", JLabel.RIGHT);
age.setBounds(new Rectangle(0, 120, 100, 50));
addr = new JLabel("地址", JLabel.RIGHT);
addr.setBounds(new Rectangle(0, 180, 100, 50));
tel = new JLabel("电话", JLabel.RIGHT);
tel.setBounds(new Rectangle(0, 240, 100, 50));
mid = new JTextField(20);
mid.setBounds(new Rectangle(120, 0, 400, 50));
mid.setEditable(false);
mname = new JTextField(20);
mname.setBounds(new Rectangle(120, 60, 400, 50));
mname.setEditable(false);
mage = new JTextField(20);
mage.setBounds(new Rectangle(120, 120, 400, 50));
mage.setEditable(false);
maddr = new JTextField(20);
maddr.setBounds(new Rectangle(120, 180, 400, 50));
maddr.setEditable(false);
mtel = new JTextField(20);
mtel.setBounds(new Rectangle(120, 240, 400, 50));
mtel.setEditable(false);
// /////表二
xiaoxue = new JLabel("小学", JLabel.RIGHT);
xiaoxue.setBounds(new Rectangle(0, 0, 100, 50));
zhongxue = new JLabel("中学", JLabel.RIGHT);
zhongxue.setBounds(new Rectangle(0, 60, 100, 50));
daxue = new JLabel("大学", JLabel.RIGHT);
daxue.setBounds(new Rectangle(0, 120, 100, 50));
mxiaoxue = new JTextField(20);
mxiaoxue.setBounds(new Rectangle(120, 0, 400, 50));
mxiaoxue.setEditable(false);
mzhongxue = new JTextField(20);
mzhongxue.setBounds(new Rectangle(120, 60, 400, 50));
mzhongxue.setEditable(false);
mdaxue = new JTextField(20);
mdaxue.setBounds(new Rectangle(120, 120, 400, 50));
mdaxue.setEditable(false);
recinfor = new JLabel("记录信息", JLabel.RIGHT);
recinfor.setBounds(new Rectangle(0, 300, 100, 50));
recinformation = new JTextField();
recinformation.setBounds(new Rectangle(120, 300, 400, 50));
recinformation.setEditable(false);
nowreclabel = new JLabel("定位到");
nowrecfield = new JTextField();
nowrecfield.setEditable(false);
/**
*
* 按钮生成
*/
up = new JButton("上一条");
up.setEnabled(false);
down = new JButton("下一条");
down.setEnabled(false);
last = new JButton("末条");
last.setEnabled(false);
first = new JButton("首条");
first.setEnabled(false);
add = new JButton("增加");
brow = new JButton("浏览");
brow.setMnemonic(KeyEvent.VK_B);
clear = new JButton("清除");
del = new JButton("删除");
edit = new JButton("编辑");
add.setEnabled(false);
edit.setEnabled(false);
brow.setEnabled(false);
del.setEnabled(false);
tofile = new JButton("导出文件");
tofile.setToolTipText("将文件保存到磁盘");
tomdb = new JButton("导入文件");
// /////////////////////////////////////////////////获取字体
ffont = new JComboBox();
Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAllFonts();
String names;
for (int k = 0; k < fonts.length; k++) {
names = fonts[k].getFontName();
ffont.addItem(names);
}
fsize = new JComboBox();
for (int k = 20; k < 100; k = k + 5)
fsize.addItem(String.valueOf(k));
fcolor = new JButton("背景颜色");
list = new JTextArea(30, 90);
list.setWrapStyleWord(true);
mation = new JButton("数据库格式");
JScrollPane listpane = new JScrollPane(list,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
p = new JPanel();
p.setLayout(new FlowLayout());
p.add(listpane);
/**
*
* 菜单项目
*/
JMenu conmenue = new JMenu("连接设置");
JMenuItem m1 = new JMenuItem("连接数据源");
JMenu m2 = new JMenu("连接SQL数据库");
JMenuItem m20 = new JMenuItem("连接");
JMenuItem m21 = new JMenuItem("修改服务器");
JMenuItem m22 = new JMenuItem("修改端口号");
JMenuItem m23 = new JMenuItem("修改数据库");
JMenuItem m24 = new JMenuItem("修改用户");
JMenuItem m25 = new JMenuItem("修改密码");
m2.add(m20);
m2.add(m21);
m2.add(m22);
m2.add(m23);
m2.add(m24);
m2.add(m25);
JMenuItem m5 = new JMenuItem("读取配置文件");
conmenue.add(m1);
conmenue.add(m2);
conmenue.add(m5);
JMenu helpmenu = new JMenu("帮助");
JMenuItem m6 = new JMenuItem("帮助文档");
helpmenu.add(m6);
JMenuBar bar = new JMenuBar();
bar.add(conmenue);
bar.add(helpmenu);
frame.setJMenuBar(bar);
/**
* 弹出菜单
*/
popmenu = new JPopupMenu();
JMenuItem colormenu = new JMenuItem("背景颜色");
JMenuItem tomdbmenu = new JMenuItem("打开文件");
JMenuItem tofilemenu = new JMenuItem("保存文件");
JMenuItem clearmenu = new JMenuItem("清除");
popmenu.add(colormenu);
popmenu.add(tomdbmenu);
popmenu.add(tofilemenu);
popmenu.add(clearmenu);
/**
* -----PANE4--- | | tabpane PANE2 PANE(y1) pane1(y2)
*
*
* PANE3---- | -PANE5 P------|
*
*/
JPanel pane1 = new JPanel();
pane1.add(new JLabel("fds"));
pane = new JPanel();
pane.setLayout(null);
pane.add(id);
pane.add(mid);
pane.add(name);
pane.add(mname);
pane.add(age);
pane.add(mage);
pane.add(addr);
pane.add(maddr);
pane.add(tel);
pane.add(mtel);
pane.add(recinfor);
pane.add(recinformation);
// /////////////////////////////////////////////
pane1 = new JPanel();
pane1.setLayout(null);
pane1.add(xiaoxue);
pane1.add(mxiaoxue);
pane1.add(zhongxue);
pane1.add(mzhongxue);
pane1.add(daxue);
pane1.add(mdaxue);
JPanel pane2 = new JPanel();
pane2.setLayout(new GridLayout(6, 2, 20, 5));
pane2.add(first);
pane2.add(add);
pane2.add(up);
pane2.add(edit);
pane2.add(down);
pane2.add(del);
pane2.add(last);
pane2.add(brow);
pane2.add(nowreclabel);
pane2.add(nowrecfield);
pane2.setBorder(new TitledBorder("数据操作"));
// pane2.add(mation);
// pane2.add(clear);
JTabbedPane tabpane = new JTabbedPane(JTabbedPane.LEFT);
tabpane.addTab("通讯录", null, pane, "textare textfield");
tabpane.addTab("教育信息", null, pane1, "textare textfield");
tablisener tab = new tablisener();
tabpane.addChangeListener(tab);
JPanel pane4 = new JPanel();
pane4.setLayout(new BorderLayout());
pane4.add(tabpane, BorderLayout.CENTER);
pane4.add(pane2, BorderLayout.EAST);
JPanel pane3 = new JPanel();
pane3.setLayout(new FlowLayout());
pane3.add(tofile);
pane3.add(tomdb);
pane3.add(ffont);
pane3.add(fsize);
pane3.add(fcolor);
pane3.add(clear);
JPanel pane5 = new JPanel();
pane5.setLayout(new BorderLayout());
pane5.add(pane3, BorderLayout.NORTH);
pane5.add(p, BorderLayout.SOUTH);
JScrollPane js1 = new JScrollPane(pane4,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JScrollPane js2 = new JScrollPane(pane5,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JSplitPane jsp1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, js1, js2);
jsp1.setOneTouchExpandable(true);
jsp1.setDividerLocation(350);
// ////////////////////////////////////////////////////////////////////
ImageIcon my = new ImageIcon("my.gif");
frame.setIconImage(my.getImage());
frame.getContentPane().add(jsp1);
frame.pack();
frame.setVisible(true);
// ////////////////////////////////////////////////////////////
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try {
rec.close();
st.close();
conn.close();
} catch (Exception ee) {
}
System.exit(0);
}
});
/**
* 移动到首条
*/
first.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
tofirst();
}
});
/**
* 移动到上一条
*/
up.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
toup();
}
});
/**
* 移动到下一条 *
*/
down.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
todown();
}
});
/**
* 移动到末条
*/
last.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
tolast();
}
});
/**
* 增加记录
*/
add.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
if (mid.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "ID内容不可以为空");
mid.setFocusable(true);
return;
}
if (table == "y1") {
if (mname.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "姓名内容不能为空");
return;
}
if (mage.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "年龄内容不能为空");
return;
}
if (maddr.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "地址内容不能为空");
return;
}
if (mtel.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "电话内容不能为空");
return;
}
}
if (table == "y2") {
if (mxiaoxue.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "小学内容不能为空");
return;
}
if (mzhongxue.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "中学内容不能为空");
return;
}
if (mdaxue.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "大学内容不能为空");
return;
}
}
addrec();
}
});
/**
* 修改记录
*
*/
edit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent r) {
editrec();
}
});
/**
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -