1 import javax.swing.*;
2 import java.awt.*;
3 import java.awt.event.*;
4 import javax.sql.RowSet;
5 import com.sun.rowset.CachedRowSetImpl;
6
7 public class TestTableEditor extends JApplet {
8 private JComboBox jcboDriver = new JComboBox(new String[] {
9 "sun.jdbc.odbc.JdbcOdbcDriver",
10 "com.mysql.jdbc.Driver",
11 "oracle.jdbc.driver.OracleDriver"
12 });
13 private JComboBox jcboURL = new JComboBox(new String[] {
14 "jdbc:odbc:exampleMDBDataSource",
15 "jdbc:mysql://localhost/javabook",
16 "jdbc:oracle:thin:@liang.armstrong.edu:1521:orcl"
17 });
18
19 private JButton jbtConnect =
20 new JButton("Connect to DB & Get Table");
21 private JTextField jtfUserName = new JTextField();
22 private JPasswordField jpfPassword = new JPasswordField();
23 private JTextField jtfTableName = new JTextField();
24 private TableEditor tableEditor1 = new TableEditor();
25 private JLabel jlblStatus = new JLabel();
26
27
28 public TestTableEditor() {
29 JPanel jPanel1 = new JPanel(new GridLayout(5, 0));
30 jPanel1.add(jcboDriver);
31 jPanel1.add(jcboURL);
32 jPanel1.add(jtfUserName);
33 jPanel1.add(jpfPassword);
34 jPanel1.add(jtfTableName);
35
36 JPanel jPanel2 = new JPanel(new GridLayout(5, 0));
37 jPanel2.add(new JLabel("JDBC Driver"));
38 jPanel2.add(new JLabel("Database URL"));
39 jPanel2.add(new JLabel("Username"));
40 jPanel2.add(new JLabel("Password"));
41 jPanel2.add(new JLabel("Table Name"));
42
43 JPanel jPanel3 = new JPanel(new BorderLayout());
44 jPanel3.add(jbtConnect, BorderLayout.SOUTH);
45 jPanel3.add(jPanel2, BorderLayout.WEST);
46 jPanel3.add(jPanel1, BorderLayout.CENTER);
47 tableEditor1.setPreferredSize(new Dimension(400, 200));
48
49 jcboURL.setEditable(true);
50 jcboDriver.setEditable(true);
51
52 add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
53 jPanel3, tableEditor1), BorderLayout.CENTER);
54 add(jlblStatus, BorderLayout.SOUTH);
55
56 jbtConnect.addActionListener(new ActionListener() {
57 @Override
58 public void actionPerformed(ActionEvent evt) {
59 try {
60
61 Class.forName(((String)jcboDriver.getSelectedItem()).trim());
62 RowSet rowSet = new CachedRowSetImpl();
63 rowSet.setUrl(((String)jcboURL.getSelectedItem()).trim());
64 rowSet.setUsername(jtfUserName.getText().trim());
65 rowSet.setPassword(new String(jpfPassword.getPassword()));
66 rowSet.setCommand("select * from " +
67 jtfTableName.getText().trim());
68 rowSet.execute();
69 rowSet.beforeFirst();
70 tableEditor1.setRowSet(rowSet);
71 }
72 catch (Exception ex) {
73 jlblStatus.setText(ex.toString());
74 }
75 }
76 });
77 }
78
79
80 public static void main(String[] args) {
81 TestTableEditor applet = new TestTableEditor();
82 JFrame frame = new JFrame();
83 frame.setDefaultCloseOperation(3);
84 frame.setTitle("TestTableEditor");
85 frame.add(applet, BorderLayout.CENTER);
86 applet.init();
87 applet.start();
88 frame.pack();
89 frame.setLocationRelativeTo(null);
90 frame.setVisible(true);
91 }
92 }