您的位置:首页 > 编程语言 > Java开发

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

2008-05-24 23:59 489 查看
google_ad_client = "pub-8800625213955058";

/* 336x280, 创建于 07-11-21 */

google_ad_slot = "0989131976";

google_ad_width = 336;

google_ad_height = 280;

//

/*

*这是一个关于菜单以及事件监听器的例子

*其中包含了 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());

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐