swing布局设计及事件监听和javabean数据管理事例

来源:互联网 发布:什么是数据铁笼? 编辑:程序博客网 时间:2024/06/05 20:05
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>/* *这是一个关于菜单以及事件监听器的例子 *其中包含了 JMenu JTable JToolBar 等控件的使用 *本例子用的是access,请先建立txb.mdb *由不足之处请指教:shengshuai@126.com */import java.net.*;import java.io.*;import java.sql.*;import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.UIManager;import javax.swing.plaf.metal.MetalLookAndFeel;import java.util.Vector;import javax.swing.table.DefaultTableModel;public class txb{public txb(){fsframe Frame1 = new fsframe();Frame1.validate();Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = Frame1.getSize();if (frameSize.height > screenSize.height){frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width){frameSize.width = screenSize.width;}Frame1.setLocation((screenSize.width - frameSize.width)/2,(screenSize.height - frameSize.height)/2);Frame1.setDefaultCloseOperation(3);Frame1.show();}public static void main(String[] args){try{UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");}catch(Exception e){e.printStackTrace();}new txb();}}class fsframe extends JFrame implements ActionListener{JLabel nemelabel = new JLabel("名字:");JLabel passlabel = new JLabel("密码:");JLabel zhuzhi = new JLabel("家庭住址:");JButton insertbutton = new JButton("添加");JButton exitbutton = new JButton("退出");JTextField namefield = new JTextField("圣帅");JTextField passfield = new JTextField("7820131");JTextField addr = new JTextField("东营职业学院学2(410)宿舍");JTextArea log = new JTextArea(10,0);JTextArea input = new JTextArea(4,0);JPanel inputpanel = new JPanel();JPanel buttonpanel = new JPanel();JScrollPane logscrollpane = new JScrollPane();JScrollPane inputsrollpane = new JScrollPane();JMenuBar Bare = new JMenuBar();JMenu filemenu = new JMenu("文件(F)");JMenuItem jianjie = new JMenuItem("关于本例");JMenuItem creattablemenuitem = new JMenuItem("建表");JMenuItem exitmenuitem = new JMenuItem("退出"); JMenu sqlmenu = new JMenu("SQL");JMenuItem select = new JMenuItem("查看");JMenuItem del = new JMenuItem("删除所有数据");JMenuItem deltable = new JMenuItem("删除表");JMenu about = new JMenu("关于(A)");JMenuItem aboutme = new JMenuItem("关于作者");JToolBar toolbar = new JToolBar();public fsframe(){setSize(Toolkit.getDefaultToolkit().getScreenSize().width/2,380);this.setResizable(false);this.getContentPane().setLayout(new BorderLayout());filemenu.setMnemonic(KeyEvent.VK_F);sqlmenu.setMnemonic(KeyEvent.VK_S);about.setMnemonic(KeyEvent.VK_A);Bare.add (filemenu);filemenu.add (creattablemenuitem);filemenu.add (exitmenuitem); exitmenuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,ActionEvent.CTRL_MASK));// 快捷键Bare.add(sqlmenu);sqlmenu.add(select);select.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));select.addActionListener(this);sqlmenu.add(del);del.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));del.addActionListener(this);sqlmenu.addSeparator();sqlmenu.add(deltable);deltable.addActionListener(this);Bare.add(about);//about.add (jianjie);jianjie.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,ActionEvent.CTRL_MASK));about.add(aboutme);aboutme.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,ActionEvent.ALT_MASK));this.setJMenuBar(Bare);//-----menu action --------exitmenuitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent exi){System.exit(0);}});jianjie.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent jiaj){JOptionPane.showMessageDialog(null,"这是一个关于布局和监听器的例子/n本例子的操作都对表user执行/n请先建立数据库txb.mdb");}});aboutme.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent jiaj){JOptionPane.showMessageDialog(null,"姓名:范圣帅/nEmail:shengshuai@126.com/n网址:http://www.shengshuai.260.cn/n http://www.myjavaserver.com/~shengshuai");}});creattablemenuitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent creatt){creattablemenuitemframe creattablemenuitem1 = new creattablemenuitemframe(); creattablemenuitem1.show();creattablemenuitem1.hide();}});//----end----menu action -//Container contentpane = getContentPane();contentpane.setLayout(new BorderLayout());toolbar.add(jianjie);//toolbar.add(insertbutton);contentpane.add(toolbar,BorderLayout.NORTH);contentpane.add(inputpanel,BorderLayout.CENTER);inputpanel.setLayout(new GridLayout(3,2));inputpanel.add(nemelabel);inputpanel.add(namefield);inputpanel.add(passlabel);inputpanel.add(passfield);inputpanel.add(zhuzhi);inputpanel.add(addr);addr.addActionListener(this);contentpane.add(buttonpanel,BorderLayout.SOUTH);buttonpanel.add(insertbutton);insertbutton.addActionListener(this);buttonpanel.add(exitbutton);exitbutton.addActionListener(this);//-------------button action-------------}public void actionPerformed(ActionEvent ae){Object source = ae.getSource();JFrame resultframe = new JFrame();JScrollPane jScrollPane1 = new JScrollPane();JTable jTable1 = new JTable();// --------查询数据--------------------------------------if (source==select){access ctm = new access();ResultSet rs = ctm.executeQuery("SELECT * From user");try{getContentPane().add(jScrollPane1);Vector vcol = new Vector(); //列名Vector vrow = new Vector(); //内容vcol.addElement("名字");vcol.addElement("密码");vcol.addElement("住址");while (rs.next()){Vector vr1 = new Vector();vr1.addElement(rs.getString("username"));vr1.addElement(rs.getString("userpass"));vr1.addElement(rs.getString("address"));vrow.addElement(vr1);}DefaultTableModel dtm = new DefaultTableModel(vrow, vcol);jTable1 = new JTable(vrow, vcol);jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //滚动条设置左右滚jScrollPane1.getViewport().add(jTable1, null); //在滚动条中放入表resultframe.getContentPane().add(jScrollPane1);resultframe.setSize(400,400);resultframe.setLocation(200,20);resultframe.show();}catch(SQLException sqa){System.out.print(sqa);}//--------删除数据----------}else if(source == del){access ctm = new access();ctm.executeUpdate("DELETE * FROM USER");//---------删除表-----------}else if(source == deltable){ String tablename = JOptionPane.showInputDialog("请输入要删除的表名","user"); access ctm = new access(); ctm.executeUpdate("DROP TABLE " tablename); //-------插入数据------------}else if (source==insertbutton){access ctm = new access();String name = namefield.getText().trim();String pass = passfield.getText().trim();String address = addr.getText().trim();//System.out.print(name pass);ctm.executeUpdate("INSERT INTO user (username,userpass,address) VALUES ('" name "','" pass "','" address "')");}else if(source == exitbutton){System.exit(0);}}}class creattablemenuitemframe extends JFrame{public creattablemenuitemframe(){String tablename = JOptionPane.showInputDialog("请输入表名","user");access ctm = new access();ctm.executeUpdate("CREATE TABLE " tablename "(username string ,userpass string,address string )");hide();}}class access{String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String strCon = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="; Connection con = null;ResultSet rs = null;Statement stmt = null;public access(){try{Class.forName(dbDriver);}catch(java.lang.ClassNotFoundException e){System.err.println("数据库驱动程序加载失败,异常为:" e.getMessage());}finally{System.out.println("驱动程序加载成功");}}public ResultSet executeQuery(String strSQL){rs = null;try{con = DriverManager.getConnection(strCon "txb.mdb");Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stmt.executeQuery(strSQL);}catch(SQLException ex){JOptionPane.showMessageDialog(null,"executeQuery在执行" strSQL "失败了,异常为:/n" ex.getMessage());}finally{System.out.println("executeQuery--数据库连接成功");}return rs;}public void executeUpdate(String strSQL){try{con = DriverManager.getConnection(strCon "txb.mdb");stmt = con.createStatement();stmt.executeUpdate(strSQL);}catch(SQLException ex){JOptionPane.showMessageDialog(null,"executeUpdate在执行" strSQL "失败了,异常为:/n" ex.getMessage());}}}
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 北桥房价 北天行秦诺伊梁 北棠 邪瞳 北棠 北森 北森italent 北榄府 北欧风格 北欧 北欧装修 北欧五国 北欧移民 北欧夫妇 北欧效果图 北欧神话 北欧风 北欧三国 北欧留学 去北欧旅游 北欧人 北欧装饰画 北欧背景墙 北欧风卧室 北欧电视墙 北欧卫生间 北欧风家具 北欧餐厅灯 简约北欧 北欧风厨房 北欧风家居 北欧自助游 带着仙门混北欧 北欧风格装修 北欧装修风格 北欧装修效果图 北欧风格装修效果图 北欧风格装修图片 北欧风格图片 北欧风格家具 北欧风格装修实景图整户 北欧风格装修效果