十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
没有错的,你在sql执行后面加个手动提交呢,conn.commit();//conn这是数据库连接变量,根据你自己的修改下。
10余年的儋州网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整儋州建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“儋州网站设计”,“儋州网站推广”以来,每个客户项目都认真落实执行。
进口java.awt。*;
进口java.awt.event。*;
进口javax.swing。*;
进口. io . *;
进口java.util。*;
类学生实现java.io.Serializable {
串号,姓名,专业,年级,波尔斯,性;
公共的学生(){ };
公共空间setNumber(弦号){ this.number =数量;}
公共字符串getNumber(){返回数量;}
公共空间setName(字符串名称){ this.name =名字;}
公共字符串getName(){返回名称;}
公共空间setSex(字符串性){ this.sex =性;}
公共字符串getSex(){返回性;}
公共空间setSpecialty(字符串专业){ this.specialty =专业;}
公共字符串getSpecialty(){返回专业;}
公共空间setGrade(字符串年级){ this.grade =年级;}
公共字符串getGrade(){返回年级;}
公共空间setBorth(字符串波尔斯){ this.borth =波尔斯;}
公共字符串getBorth(){返回波尔斯;}
}
公开课StudentManager延伸JFrame {
JLabel磅= new JLabel(“录入请先输入记录,查询,删除请先输入学号,修改是对查询”+
“内容改后的保存!”);
静态JTextField Jnumber、Jname Jspecialty、Jgrade Jborth;
静态JRadioButton男孩,女孩;
静态ButtonGroup组=零;
静态JButton登录、选择、删除、更新显示;
静态JPanel p1,p2,p3,p4,p5,p6、pv,ph值;
静态学生学生=零;
静态Hashtable Shashtable =零;
静态文件文件=零;
静态FileInputStream剧中=零;
静态ObjectInputStream inTwo =零;
静态FileOutputStream outOne =零;
静态ObjectOutputStream outTwo =零;
公共StudentManager(){
超级(“学生基本信息管理系统”);
Jnumber = new JTextField(10);
Jname = new JTextField(10);
Jspecialty = new JTextField(10);
Jgrade = new JTextField(10);
Jborth = new JTextField(10);
组= new ButtonGroup();
男孩= new JRadioButton(“男”,真正的);
女孩= new JRadioButton(“女”,假);
group.add(男孩);
group.add(女孩);
登录= new JButton(“录入”);
选择= new JButton(“查询”);
删除= new JButton(“删除”);
更新= new JButton(“修改”);
显示= new JButton(“显示”);
登录。 addActionListener(新InputAct());
选择。 addActionListener(新InquestAct());
更新。 addActionListener(新ModifyAct());
删除。 addActionListener(新DeleteAct());
秀。 addActionListener(新ShowAct());
update.setEnabled(假);
p1 = new JPanel();
p1。 (新JLabel添加(“学号:“,JLabel.CENTER));
p1.add(Jnumber);
p2 = new JPanel();
p2。 (新JLabel添加(“姓名:“,JLabel.CENTER));
p2.add(Jname);
p3 = new JPanel();
p3。 (新JLabel添加(“性别:“,JLabel.CENTER));
p3.add(男孩);
p3.add(女孩);
p4 = new JPanel();
p4。 (新JLabel添加(“专业:“,JLabel.CENTER));
p4.add(Jspecialty);
p5 = new JPanel();
p5。 (新JLabel添加(“年级:“,JLabel.CENTER));
p5.add(Jgrade);
p6 = new JPanel();
p6。 (新JLabel添加(“出生:“,JLabel.CENTER));
p6.add(Jborth);
pv = new JPanel();
pv。 setLayout(新GridLayout(6,1));
pv.add(p1);
pv.add(p2);
pv.add(p3);
pv.add(p4);
pv.add(p5);
pv.add(p6);
ph = new JPanel();
ph.add(登录);
ph.add(选择);
ph.add(更新);
ph.add(删除);
ph.add(显示);
=新文件(“学生信息. txt”);
Shashtable = new散列表();
如果(! file.exists()){
尝试{
FileOutputStream =新FileOutputStream(文件);
ObjectOutputStream objectOut = new ObjectOutputStream(出);
objectOut.writeObject(Shashtable);
objectOut.close();
out.close();
}
抓住(IOException e){ }
}
容器con = getContentPane();
con.setLayout(新BorderLayout());
con.add(磅,BorderLayout.NORTH);
BorderLayout.CENTER con.add(pv);
con.add(ph值、BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(100100600300);
setVisible(真正的);
}
公共静态void main(String[]args){新StudentManager();}
类InputAct实现ActionListener {
公共空间actionPerformed(ActionEvent e){
update.setEnabled(假);
字符串数量= " ";
数量= Jnumber.getText();
如果(number.length() 0){
尝试{
剧中= new FileInputStream(文件);
inTwo = new ObjectInputStream(剧中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕获异常(ee){ System.out.println(“创建散列表出现问题!”);}
如果(Shashtable.containsKey(数字)){
字符串警告= "该生信息已存在,请到修改页面修改!”;
JOptionPane.showMessageDialog(null,警告,“警告”,
JOptionPane.WARNING_MESSAGE);
} / / i
其他{
字符串m =“该生信息将被录入!”;
int ok = JOptionPane.showConfirmDialog(null,m,“确认”,
JOptionPane.YES_NO_OPTION JOptionPane.INFORMATION_MESSAGE);
如果(好吧= = JOptionPane.YES_OPTION){
字符串名称= Jname.getText();
字符串专业= Jspecialty.getText();
串级= Jgrade.getText();
字符串波尔斯= Jborth.getText();
字符串性=零;
如果(boy.isSelected()){性= boy.getText();}
其他{性= girl.getText();}
学生= new();
student.setNumber(数量);
student.setName(名称);
student.setSpecialty(专业);
student.setGrade(年级);
student.setBorth(波尔斯);
student.setSex(性);
尝试{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
Shashtable.put(数量、学生);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
}
捕获异常(ee){ System.out.println(“输出散列表出现问题!”);}
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
} / / else1结束
} / / i₀f
其他{
字符串警告= "必须输入学号!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
} / / else0结束
} / / actionPerformed结束
} / /结束类
类InquestAct实现ActionListener {
公共空间actionPerformed(ActionEvent e){
字符串数量= " ";
数量= Jnumber.getText();
如果(number.length() 0){
尝试{
剧中= new FileInputStream(文件);
inTwo = new ObjectInputStream(剧中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕获异常(ee){ System.out.println(“散列表有问题!”);}
如果(Shashtable.containsKey(数字)){
update.setEnabled(真正的);
学生stu =(学生)Shashtable.get(数量);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
如果(stu.getSex().equals(男)){ boy.setSelected(真正);}
其他{ girl.setSelected(真正);}
}
其他{
update.setEnabled(假);
字符串警告= "该学号不存在!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
其他{
update.setEnabled(假);
字符串警告= "必须输入学号!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
}
类ModifyAct实现ActionListener {
公共空间actionPerformed(ActionEvent e){
字符串数量= Jnumber.getText();
字符串名称= Jname.getText();
字符串专业= Jspecialty.getText();
串级= Jgrade.getText();
字符串波尔斯= Jborth.getText();
字符串性=零;
如果(boy.isSelected()){性= boy.getText();}
其他{性= girl.getText();}
学生学生=新学生();
学生.setNumber(数量);
学生.setName(名称);
学生.setSpecialty(专业);
学生.setGrade(年级);
学生.setBorth(波尔斯);
学生.setSex(性);
尝试{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
Shashtable。 把(数量、学生);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
捕获异常(ee){
System.out.println(“录入修改出现异常!”);
update.setEnabled(假);
}
}
}
类DeleteAct实现ActionListener {
公共空间actionPerformed(ActionEvent e){
update.setEnabled(假);
字符串数量= Jnumber.getText();
如果(number.length() 0){
尝试{
剧中= new FileInputStream(文件);
inTwo = new ObjectInputStream(剧中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕获异常(ee){ }
如果(Shashtable.containsKey(数字)){
学生stu =(学生)Shashtable.get(数量);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
如果(stu.getSex().equals(男)){ boy.setSelected(真正);}
其他{ girl.setSelected(真正);}
}
字符串m = "确定要删除该学生的记录吗?”;
int ok = JOptionPane.showConfirmDialog(null,m,“确认”,
JOptionPane.YES_NO_OPTION JOptionPane.QUESTION_MESSAGE);
如果(好吧= = JOptionPane.YES_OPTION){
Shashtable.remove(数量);
尝试{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
捕获异常(ee){ System.out.println(ee);}
}
else if(好吧= = JOptionPane.NO_OPTION){
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
其他{
字符串警告= "该学号不存在!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
其他{
字符串警告= "必须输入学号!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
}
类ShowAct实现ActionListener {
公共空间actionPerformed(ActionEvent e){
新StudentShow(文件);
}
}
类StudentShow JDialog {延伸
Hashtable学生散列表=零;
JTextArea显示=零;
FileInputStream剧中=零;
ObjectInputStream inTwo =零;
文件文件=零;
公共StudentShow(文件文件){
超级(新JFrame(),“显示对话框”);
this.file =文件;
显示= new JTextArea(30);
尝试{
剧中= new FileInputStream(文件);
inTwo = new ObjectInputStream(剧中);
学生散列表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕获异常(ee){ }
如果学生散列表.isEmpty())显示.append(“目前还没有学生的信息记录! \ n”);
其他{
显示。 setText(“学号姓名性别专业年级出生\ n”);
(列举运用=学生散列表. elements();enm.hasMoreElements();){
学生stu =(学生)enm.nextElement();
字符串性= " ";
如果(stu.getSex().equals(男))性= "男";
其他性= "女";
字符串str = stu.getNumber()+”、“+ stu.getName()+”、“+性别+”、“
+ stu.getSpecialty()+”、“+ stu.getGrade()+”、“+ stu.getBorth()+“\ n”;
显示.append(str);
}
}
JScrollPane滚动= new JScrollPane(显示);
容器con = getContentPane();
con.add(“中心”,滚动);
con.validate();
setVisible(真正的);
setBounds(200200400300);
addWindowListener(新WindowAdapter(){
公共空间windowClosing(WindowEvent e){ setVisible(假);}
}
);
}
}
}
首先我先说下jdk是不支持泛型的,但是可以用强制转型的方式
1.去掉每个类的的东西,如改写成List sockets=new ArrayList();报错的地方用强制转型的方式改写,如(Socket) socket
2.ChatToMul这个类中for循环改写为Iterator
for(Iterator it = sockets.iterator();it.hasNext();){
Socket socketto = (Socket) it.next();
PrintWriter pw=MyUtil.getPrintWriter(socket);
PrintWriter pwto=MyUtil.getPrintWriter(socketto);
pw.println(socket.getRemoteSocketAddress().toString()+"对"+
socketto.getRemoteSocketAddress().toString()+"说:"+message);
pw.flush();
pwto.println(socket.getRemoteSocketAddress().toString()+"对"+
socketto.getRemoteSocketAddress().toString()+"说:"+message);
pwto.flush();
}
这样基本改写成功。
如果需要源代码话,就联系我,我传给你,
代码改写不易,望采纳
doUpdate放入一个实例对象,但是是一个空的实例对象,做修改的时候,出现一个异常问题,所以不会实现打印了;
/**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath);
}