使用JTable组件显示message表的记录、更新message表的记录、像message表插入记录。本例共有4个Java源文件,需分别保存编译,其中Example.java是主类,效果图如
Example.java代码
1 import javax.swing.*; 2 import java.awt.*; 3 import java.awt.event.*; 4 import java.sql.*; 5 public class Example{ 6 public static void main(String args[ ]){ 7 try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 8 } 9 catch(ClassNotFoundException e){ 10 System.out.println(""+e); 11 } 12 DatabaseWin win=new DatabaseWin(); 13 } 14 } 15 class DatabaseWin extends JFrame implements ActionListener{//主窗口 16 JMenuBar menubar; 17 JMenu menu; 18 JMenuItem itemShow,itemUpdate,itemInsert; 19 ShowRecord showRecord; 20 ModifyRecord modifyRecord; 21 InsertRecord insertRecord; 22 DatabaseWin(){ 23 menubar=new JMenuBar(); 24 menu=new JMenu("操作数据库"); 25 itemShow=new JMenuItem("显示记录"); 26 itemUpdate=new JMenuItem("更新记录"); 27 itemInsert=new JMenuItem("插入记录"); 28 itemShow.addActionListener(this); 29 itemUpdate.addActionListener(this); 30 itemInsert.addActionListener(this); 31 menu.add(itemShow); 32 menu.add(itemUpdate); 33 menu.add(itemInsert); 34 menubar.add(menu); 35 showRecord=new ShowRecord("显示记录对话框"); 36 modifyRecord=new ModifyRecord("修改记录对话框"); 37 insertRecord=new InsertRecord("插入记录对话框"); 38 setJMenuBar(menubar); 39 setBounds(100,100,370,250); 40 setVisible(true); 41 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 42 } 43 public void actionPerformed(ActionEvent e){ 44 if(e.getSource()==itemShow) 45 showRecord.setVisible(true); 46 else if(e.getSource()==itemUpdate) 47 modifyRecord.setVisible(true); 48 else if(e.getSource()==itemInsert) 49 insertRecord.setVisible(true); 50 } 51 }
ShowRecord.java代码
1 import javax.swing.* ; 2 import java.awt.* ; 3 import java.awt.event.* ; 4 import java.sql.* ; 5 public class ShowRecord extends JDialog implements ActionListener //负责显示记录的类 6 { 7 JTable table ; 8 Object a[][] ; 9 Object name[]={"学号","姓名","出生日期","身高"} ; 10 JButton showRecord ; 11 Connection con ; 12 Statement sql ; 13 ResultSet rs ; 14 ShowRecord(String title){ 15 setTitle(title) ; 16 showRecord=new JButton("显示记录") ; 17 showRecord.addActionListener(this) ; 18 add(showRecord,BorderLayout.NORTH) ; 19 setBounds(200,60,400,250) ; 20 } 21 public void actionPerformed(ActionEvent e){ 22 try 23 { 24 con=DriverManager.getConnection("jdbc:odbc:hello","","") ; 25 sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ; 26 rs=sql.executeQuery("SELECT * FROM message") ; 27 rs.last() ; 28 int lastNumber=rs.getRow() ; 29 a=new Object[lastNumber][4] ; 30 int k=0 ; 31 rs.beforeFirst() ; 32 while(rs.next()){ 33 a[k][0]=rs.getString(1) ; 34 a[k][1]=rs.getString(2) ; 35 a[k][2]=rs.getDate(3) ; 36 a[k][3]=rs.getString(4) ; 37 k++ ; 38 } 39 con.close() ; 40 } 41 catch (SQLException ee) 42 { 43 System.out.println(ee) ; 44 } 45 table=new JTable(a,name) ; 46 getContentPane().removeAll() ; 47 add(showRecord,BorderLayout.NORTH) ; 48 add(new JScrollPane(table),BorderLayout.CENTER) ; 49 validate() ; 50 } 51 }
ModifyRecord.java代码
1 import javax.swing.*; 2 import java.awt.*; 3 import java.awt.event.*; 4 import java.sql.*; 5 import javax.swing.border.*; 6 public class ModifyRecord extends JDialog implements ActionListener{ //负责更新记录的类 7 JLabel hintLabel; 8 JTextField inputNumber; 9 Object name[]={"姓名","出生日期","身高"}; 10 Object a[][]=new Object[1][3]; 11 JTable table; 12 JButton enterModify; 13 Connection con; 14 Statement sql; 15 ResultSet rs; 16 String num; 17 ModifyRecord(String s){ 18 setTitle(s); 19 hintLabel=new JLabel("输入学号(回车确认):"); 20 inputNumber=new JTextField(20); 21 table=new JTable(a,name); 22 enterModify=new JButton("更新记录"); 23 setLayout(null); 24 Box baseBox=Box.createHorizontalBox(); 25 baseBox.add(hintLabel); 26 baseBox.add(inputNumber); 27 baseBox.add(new JScrollPane(table)); 28 baseBox.add(enterModify); 29 add(baseBox); 30 baseBox.setBounds(10,40,600,38); 31 inputNumber.addActionListener(this); 32 enterModify.addActionListener(this); 33 setBounds(20,60,700,200); 34 } 35 public void actionPerformed(ActionEvent e){ 36 if(e.getSource()==inputNumber) 37 try{ num=inputNumber.getText().trim(); 38 con=DriverManager.getConnection("jdbc:odbc:hello","",""); 39 sql=con.createStatement(); 40 rs=sql.executeQuery("SELECT * FROM message WHERE number='"+num+"'"); 41 boolean boo=rs.next(); 42 if(boo==false){ 43 JOptionPane.showMessageDialog 44 (this,"学号不存在","提示",JOptionPane.WARNING_MESSAGE); 45 } 46 else{ 47 a[0][0]=rs.getString(2); 48 a[0][1]=rs.getDate(3).toString(); 49 a[0][2]=rs.getString(4); 50 table.repaint(); 51 } 52 con.close(); 53 } 54 catch(SQLException ee){ 55 System.out.println(ee); 56 } 57 if(e.getSource()==enterModify){ 58 try{ con=DriverManager.getConnection("jdbc:odbc:hello","",""); 59 sql=con.createStatement(); 60 sql.executeUpdate 61 ("UPDATE message SET name='"+a[0][0]+ 62 "',birthday='"+a[0][1]+ 63 "',height='"+a[0][2]+"'WHERE number='"+num+"'"); 64 JOptionPane.showMessageDialog 65 (this,"更新成功","成功",JOptionPane.PLAIN_MESSAGE); 66 con.close(); 67 } 68 catch(SQLException ee){ 69 JOptionPane.showMessageDialog 70 (this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE); 71 } 72 } 73 } 74 }
InsertRecord.java代码
1 import javax.swing.*; 2 import java.awt.*; 3 import java.awt.event.*; 4 import java.sql.*; 5 import javax.swing.border.*; 6 public class InsertRecord extends JDialog implements ActionListener{ //负责插入记录的类 7 JLabel hintLabel; 8 Object name[]={"学号","姓名","出生日期","身高"}; 9 Object a[][]=new Object[1][4]; 10 JTable table; 11 JButton enterInsert; 12 Connection con; 13 Statement sql; 14 ResultSet rs; 15 String num; 16 InsertRecord(String s){ 17 setTitle(s); 18 hintLabel=new JLabel("输入新记录:"); 19 table=new JTable(a,name); 20 enterInsert=new JButton("插入新记录"); 21 setLayout(null); 22 Box baseBox=Box.createHorizontalBox(); 23 baseBox.add(hintLabel); 24 baseBox.add(new JScrollPane(table)); 25 baseBox.add(enterInsert); 26 add(baseBox); 27 baseBox.setBounds(10,40,600,38); 28 enterInsert.addActionListener(this); 29 setBounds(120,160,700,200); 30 } 31 public void actionPerformed(ActionEvent e){ 32 try{ con=DriverManager.getConnection("jdbc:odbc:hello","",""); 33 sql=con.createStatement(); 34 int k=sql.executeUpdate 35 ("INSERT INTO message VALUES('"+ 36 a[0][0]+"','"+a[0][1]+"','"+a[0][2]+"','"+a[0][3]+"')"); 37 if(k==1) 38 JOptionPane.showMessageDialog 39 (this,"插入记录成功","成功",JOptionPane.PLAIN_MESSAGE); 40 con.close(); 41 } 42 catch(SQLException ee){ 43 JOptionPane.showMessageDialog 44 (this,"插入记录失败"+ee,"失败",JOptionPane.ERROR_MESSAGE); 45 } 46 } 47 }
相关推荐
Java jtable使用 包括读取数据库 虚拟表模型
java取出mysql中数据,显示在jtable里面
通过连接后台数据库,把后台数据显示在表格中。表格通过JTable和model方法构造和显示较为容易,其中model方法可以自然显示表格内容,本人学艺不精也是在经过各种试错之后,才得出了代码比较简易的方法,欢迎批评和...
利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果。由于SUN公司提供的JDK1.x开发工具包不是可视化的集成开发环境 (IDE),不能象Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来。因此,...
电影简单的电影数据库应用程序。 使用 JTable GUI 组件显示来自 Derby 数据库的数据 Custom TableModel 处理在 GUI 中显示来自表的数据。
JTable组件是Swing组件中比较复杂的小件,隶属于javax.swing包,它能以二维表的形式显示数据。类Jtable: 定义如下: public class JTable extends JComponent implements TableModelListener, Scrollable, ...
使用技术:mysql数据库,java数据库技术,swing组件,jtable,jbutton等组件使用。 主要功能: 老师权限: 1.新增老师资料,修改老师资料,删除老师资料,查询老师信息; 2.新增学生成绩,修改学生成绩,删除学生...
学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 详见我的博客:http://blog.csdn.net/qq_25827845/article/details/50932501
java连接数据库对初学者来说,应该是比较难的,这里就是一个用java连接数据库的很好的实例,供大家学习。里面有详细的源代码,还讲述了功能丰富的JTable等组件的使用。
以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库...
SupermarketDatabase类用于处理与数据库相关的操作,包括添加产品、更新产品、删除产品、获取产品列表和获取产品详细信息等。其中的initialize方法用于初始化数据库相关的数据结构。 以上程序是一个简单的超市管理...
基于Java开发的学生信息管理系统的设计,使用图形化可视化界面。 学生信息管理系统,使用Java开发。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 该项目使用的jframe框架,并非Javaweb应用
酒店预订系统,使用java+mysql开发...3.图形化界面中使用了JTable等组件,将查询结果显示在表格中。 关于更多详解见我的博客: https://blog.csdn.net/qqshenbaobao/article/details/114417043?spm=1001.2014.3001.5501
14.8.9表格(Jtable)使用示例508 14.8.10树(JTree)使用示例518 14.8.11菜单使用示例523 14.9布局管理527 14.9.1流式布局(FlowLayout)回顾527 14.9.2边框布局(BorderLayout)使用示例528 14.9.3网格布局...
学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。...3、图形化界面中使用了JTable等组件,将查询结果显示在表格中。 详见我的博客:http://blog.csdn.net/qq_25827845/article/details/50932501
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...