求java编写的简单协同文本编辑器源码~~~急!

协同编辑的含义是指多个人通过网络在同一个编辑空间并行地进行文字编辑操作,同时每个人的操作结果能实时地在他人的机器上显示出来
答的好的可追加高分悬赏
谢谢!

package jettang;

import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

//////////////////////////////////////////////

//主类
public class STU {
public STU() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}

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

private void jbInit() throws Exception {
}
}

//主框架,数据库
class Frm_Main implements ActionListener { //throws IOException
public static final int EXIT_ON_CLOSE = 0;
public JFrame frame;
public Container c;
public JMenuBar menuBar;
public JMenu mainMenu1;
public JMenu mainMenu2;
public JMenu mainMenu3;
public JMenuItem subMenu1[] = new JMenuItem[5];
public JMenuItem subMenu2[] = new JMenuItem[7];
public JMenuItem subMenu3[] = new JMenuItem[2];
JButton toolBarButton[] = new JButton[8];
public JToolBar toolBar;
//////////////////////////////////////////////
String strTip[] = {"姓名查询...", "添加信息...",
"删除...", "修改...", "修改确认...",
"添加确认...", "删除确认...", "关于产品信息:)"};
//////////////////////////////////////////////
// String id = new String();
String name = new String();
String sex = new String();
String age = new String();
String classid = new String();
String department = new String();
String call = new String();
//////////////////////////////////////////////
Connection con;
ResultSet rs;
Statement st;
// ResultSetMetaData rsmd;
// Vector columnHeads=new Vector();
// Vector rows = new Vector();
// Vector currentRow=new Vector();

///////////////////////////////////////////////
public JLabel classidL = new JLabel("班级");
public JLabel nameL = new JLabel("姓名");
public JLabel sexL = new JLabel("性别");
public JLabel ageL = new JLabel("年龄");
public JLabel departmentL = new JLabel("单位");
public JLabel callL = new JLabel("电话");
public JLabel tittleLabel = new JLabel();
//////////////////////////////////////////////
public JTextField classidT = new JTextField();
public JTextField nameT = new JTextField();
public JTextField sexT = new JTextField();
public JTextField ageT = new JTextField();
public JTextField departmentT = new JTextField();
public JTextField callT = new JTextField();
public JTextArea textT = new JTextArea();
//////////////////////////////////////////////

//////////////////////////////////////////////
public Frm_Main() {
/////////////////////////////////////////////////
frame = new JFrame("学籍管理系统V1.0");
c = frame.getContentPane();
c.setLayout(null);
menuBar = new JMenuBar();
toolBar = new JToolBar();
toolBar.setFloatable(false);
frame.setJMenuBar(menuBar);
frame.setResizable(false);
////////////////////////////////////////////////
mainMenu1 = new JMenu("管理");
String str1[] = {"添加", "删除", "查询", " ", "关闭"};
for (int i = 0; i < 5; i++) {
if (i == 3) {
mainMenu1.addSeparator();
} else {

subMenu1[i] = new JMenuItem(str1[i]);
subMenu1[i].addActionListener(this);
mainMenu1.add(subMenu1[i]);
}
}
menuBar.add(mainMenu1);
/////////////////////////////////////////////////
mainMenu2 = new JMenu("*作");
String str2[] = {"查询", "添加", "删除", "修改",
"提交修改", "提交添加", "提交删除"};
for (int i = 0; i < 7; i++) {
subMenu2[i] = new JMenuItem(str2[i]);
subMenu2[i].addActionListener(this);
mainMenu2.add(subMenu2[i]);
}
menuBar.add(mainMenu2);
/////////////////////////////////////////////////
mainMenu3 = new JMenu("集体查询");
String str3[] = {"按班级...", "按单位..."};
for (int i = 0; i < 2; i++) {
subMenu3[i] = new JMenuItem(str3[i]);
subMenu3[i].addActionListener(this);
mainMenu3.add(subMenu3[i]);
}
menuBar.add(mainMenu3);
////////////////////////////////////////////////
String strToolBar[] = {"查询", "添加", "删除", "修改", "提交修改",
"提交添加", "提交删除", "关于"};

for (int i = 0; i < 8; i++) {

toolBarButton[i] = new JButton(strToolBar[i]);
toolBarButton[i].setToolTipText(strTip[i]);
toolBarButton[i].addActionListener(this);
toolBar.add(toolBarButton[i]);

}
toolBar.setLocation(0, 0);
toolBar.setSize(400, 30);
c.add(toolBar);
////////////////////////////////////////////////
classidL.setLocation(35, 40);
classidL.setSize(40, 20);
//classidL.setFont(new Font("",Font.BOLD,12));
c.add(classidL);

classidT.setLocation(90, 40);
classidT.setSize(200, 20);
//classidT.setEnabled(false);
c.add(classidT);

nameL.setLocation(35, 70);
nameL.setSize(40, 20);
c.add(nameL);

nameT.setLocation(90, 70);
nameT.setSize(200, 20);
c.add(nameT);

sexL.setLocation(35, 100);
sexL.setSize(40, 20);
c.add(sexL);

sexT.setLocation(90, 100);
sexT.setSize(200, 20);
c.add(sexT);

ageL.setLocation(35, 130);
ageL.setSize(40, 20);
c.add(ageL);

ageT.setLocation(90, 130);
ageT.setSize(200, 20);
c.add(ageT);

departmentL.setLocation(35, 160);
departmentL.setSize(40, 20);
c.add(departmentL);

departmentT.setLocation(90, 160);
departmentT.setSize(200, 20);
c.add(departmentT);

callL.setLocation(35, 190);
callL.setSize(40, 20);
c.add(callL);

callT.setLocation(90, 190);
callT.setSize(200, 20);
c.add(callT);
/////////////////////////////////////////////////
tittleLabel.setText("----------集体查询结果--------");
tittleLabel.setSize(300, 20);
tittleLabel.setLocation(10, 210);
c.add(tittleLabel);
////////////////////////////////////////////
textT.setSize(400, 300);
textT.setLocation(10, 240);
c.add(textT, 14);

///////////////////////////////////////////////
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 650);
frame.setLocation(200, 200);
frame.setVisible(true);
conDB();

}

//以上是框架设计

//JDBC
public void conDB() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "数据库错误");
}
try {
con = DriverManager.getConnection("jdbc:odbc:jettang", "sa", "");
st = con.createStatement();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "数据库连接失败");
}

}

//关闭连接
public void closeDB() {
try {
st.close();
con.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "数据库关闭失败");
}
}

//事件响应
public void actionPerformed(ActionEvent e) {
//////////////////////////////////////////////
if (e.getSource() == toolBarButton[7]) {
JOptionPane.showMessageDialog(null, "当前版本1.0,*作帮助请看使用说明书");
}

/////////////////////////////////////////////查询(按姓名)
if (e.getSource() == subMenu2[0] || e.getSource() == toolBarButton[0] ||
e.getSource() == subMenu1[2]) {

String idid = JOptionPane.showInputDialog("请输入学生姓名");
if (idid.trim() != "") {
String strSQL = "select * from stuinfo where name = + idid +
";
try {
rs = st.executeQuery(strSQL);
int count = 0;
while (rs.next()) {
classid = rs.getString("classid");
name = rs.getString("name");
department = rs.getString("department");
sex = rs.getString("sex");
age = rs.getString("age");
call = rs.getString("call");
++count;
}
if (count == 0) {
JOptionPane.showMessageDialog(null, "无此信息");
} else {
classidT.setText(classid);
nameT.setText(name);
sexT.setText(sex);
ageT.setText(age);
callT.setText(call);
departmentT.setText(department);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}

}
}
/////////////////////////////////////////////关闭
if (e.getSource() == subMenu1[4]) {
frame.dispose();
closeDB();
}
/////////////////////////////////////////////添加
if (e.getSource() == subMenu1[0] || e.getSource() == subMenu2[1] ||
e.getSource() == toolBarButton[1]) {
JOptionPane.showMessageDialog(null, "请输入你添加的信息再点击提交添加键");
classidT.setEnabled(true);
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

}
/////////////////////////////////////////////提交添加
if (e.getSource() == toolBarButton[5] || e.getSource() == subMenu2[5]) {
if ((classidT.getText().trim()).equals("") ||
(nameT.getText().trim()).equals("") ||
(sexT.getText().trim()).equals("") ||
(ageT.getText().trim()).equals("") ||
(callT.getText().trim()).equals("") ||
(departmentT.getText().trim()).equals("")) {
JOptionPane.showMessageDialog(null, "请先点击添加键");
} else {
classid = classidT.getText();
name = nameT.getText();
sex = sexT.getText();
age = ageT.getText();
call = callT.getText();
department = departmentT.getText();
String strSQL =
"insert into stuinfo(classid,name,sex,age,call,department) values( +
classid + , +
name + , + sex + , + age + , + call + , +
department + )";
try {
st.executeUpdate(strSQL);
} catch (Exception exx) {
JOptionPane.showMessageDialog(null, "添加失败");
return;
}
JOptionPane.showMessageDialog(null, "添加成功");
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

}
}
////////////////////////////////////////////提交修改
if (e.getSource() == subMenu2[4] || e.getSource() == toolBarButton[4]) {
if ((classidT.getText().trim()).equals("") ||
(nameT.getText().trim()).equals("") ||
(sexT.getText().trim()).equals("")
|| (ageT.getText().trim()).equals("") ||
(callT.getText().trim()).equals("") ||
(departmentT.getText().trim()).equals("")) {
JOptionPane.showMessageDialog(null, "请先点击修改键");
return;
} else {
classid = classidT.getText();
name = nameT.getText();
sex = sexT.getText();
age = ageT.getText();
call = callT.getText();
department = departmentT.getText();
String strSQL = "update stuinfo set classid= + classid +
,sex= + sex + ,age= + age + ,call= +
call + ,department= + department + " +
"where name= + name + ";
try {
st.executeUpdate(strSQL);
} catch (Exception exx) {
JOptionPane.showMessageDialog(null, "修改失败");
return;
}
JOptionPane.showMessageDialog(null, "修改成功");
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

}

}
///////////////////////////////////////////////修改
if (e.getSource() == subMenu2[3] || e.getSource() == toolBarButton[3]) {
String idid = JOptionPane.showInputDialog("请输入你要修改的学生姓名后点击提交修改键确认");
if (idid.trim() != "") {
String strSQL = "select * from stuinfo where name = + idid +
";
try {
rs = st.executeQuery(strSQL);
int count = 0;
while (rs.next()) {
classid = rs.getString("classid");
name = rs.getString("name");
department = rs.getString("department");
sex = rs.getString("sex");
age = rs.getString("age");
call = rs.getString("call");
++count;
}
if (count == 0) {
JOptionPane.showMessageDialog(null, "无此信息");
} else {
classidT.setText(classid);
nameT.setText(name);
sexT.setText(sex);
ageT.setText(age);
callT.setText(call);
departmentT.setText(department);
classidT.setEnabled(false);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "修改失败");
}

}
}
/////////////////////////////////////////////////删除
if (e.getSource() == subMenu2[2] || e.getSource() == toolBarButton[2] ||
e.getSource() == subMenu1[1]) {
String idDel = JOptionPane.showInputDialog("请输入要删除的学生姓名后点击提交删除键确认");
if (idDel.trim() != "") {
String strSQL = "select * from stuinfo where name = + idDel +
";
try {

rs = st.executeQuery(strSQL);
int count = 0;
while (rs.next()) {
classid = rs.getString("classid");
name = rs.getString("name");
department = rs.getString("department");
sex = rs.getString("sex");
age = rs.getString("age");
call = rs.getString("call");
++count;
}
if (count == 0) {
JOptionPane.showMessageDialog(null, "无此信息");
} else {
classidT.setText(classid);
nameT.setText(name);
sexT.setText(sex);
ageT.setText(age);
callT.setText(call);
departmentT.setText(department);
classidT.setEnabled(false);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "删除失败");
}
}
}

//////////////////////////////////////////////////提交删除
if (e.getSource() == toolBarButton[6] ||
e.getSource() == subMenu2[6]) {
if ((classidT.getText().trim()).equals("") ||
(nameT.getText().trim()).equals("") ||
(sexT.getText().trim()).equals("") ||
(ageT.getText().trim()).equals("") ||
(callT.getText().trim()).equals("") ||
(departmentT.getText().trim()).equals("")) {
JOptionPane.showMessageDialog(null, "请先点击删除键");
return;
} else {
name = nameT.getText();
String strSQL = "delete from stuinfo where name= + name +
";
try {
st.executeUpdate(strSQL);
} catch (Exception exx) {
JOptionPane.showMessageDialog(null, "删除失败");
return;
}
JOptionPane.showMessageDialog(null, "删除成功");
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

}
}

//////////////////////////////////////////////集体查询(按班级)
if (e.getSource() == subMenu3[0]) {
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

if ((classidT.getText().trim()).equals("")) {
String idclass = JOptionPane.showInputDialog("请输入班级");
String strSQL = "select * from stuinfo where classid= +
idclass +
";
try {
rs = st.executeQuery(strSQL);
displayres(rs);

} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}

} else {
String idclass = classidT.getText();
String strSQL = "select * from stuinfo where classid= +
idclass +
";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
}
}
////////////////////////////按单位
if (e.getSource() == subMenu3[1]) {
classidT.setText("");
nameT.setText("");
sexT.setText("");
ageT.setText("");
callT.setText("");
departmentT.setText("");

if ((departmentT.getText().trim()).equals("")) {
String idclass = JOptionPane.showInputDialog("请输入单位");
String strSQL = "select * from stuinfo where department= +
idclass +
";
try {
rs = st.executeQuery(strSQL);
displayres(rs);

} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}

} else {
String idclass = departmentT.getText();
String strSQL = "select * from stuinfo where department= +
idclass +
";
try {
rs = st.executeQuery(strSQL);
displayres(rs);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "查询失败");
}
}
}
}

public void displayres(ResultSet rs1) throws SQLException {
//定位到达第一条记录
boolean moreRecords = rs1.next();

//如果没有记录,则提示一条消息

if (!moreRecords) {

JOptionPane.showMessageDialog(null, "无此记录");

return;

}
try {

//获取数据
getNextRow(rs1);

//刷新Table
c.validate();

}

catch (SQLException sqlex) {

sqlex.printStackTrace();

}
}

public void getNextRow(ResultSet rs2) throws
SQLException {
int count = 1;
while (rs2.next()) {
name = " 姓名:" + rs2.getString(1);
age = " 年龄:" + rs2.getString(2) + " 单位:";
department = rs2.getString(3) + "
";
textT.append(count + "." + name + age + department);
count++;
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-06-13
龄:" + rs2.getString(2) + " 单位:";
department = rs2.getString(3) + "
";
textT.append(count + "." + name + age + department);
count++;本回答被网友采纳
相似回答