import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.sql.RowSet;
import com.sun.rowset.CachedRowSetImpl;
public class TestTableEditor extends JApplet {
private JComboBox jcboDriver = new JComboBox(new String[] {
"sun.jdbc.odbc.JdbcOdbcDriver",
"com.mysql.jdbc.Driver",
"oracle.jdbc.driver.OracleDriver"
});
private JComboBox jcboURL = new JComboBox(new String[] {
"jdbc:odbc:exampleMDBDataSource",
"jdbc:mysql://localhost/javabook",
"jdbc:oracle:thin:@liang.armstrong.edu:1521:orcl"
});
private JButton jbtConnect =
new JButton("Connect to DB & Get Table");
private JTextField jtfUserName = new JTextField();
private JPasswordField jpfPassword = new JPasswordField();
private JTextField jtfTableName = new JTextField();
private TableEditor tableEditor1 = new TableEditor();
private JLabel jlblStatus = new JLabel();
public TestTableEditor() {
JPanel jPanel1 = new JPanel(new GridLayout(5, 0));
jPanel1.add(jcboDriver);
jPanel1.add(jcboURL);
jPanel1.add(jtfUserName);
jPanel1.add(jpfPassword);
jPanel1.add(jtfTableName);
JPanel jPanel2 = new JPanel(new GridLayout(5, 0));
jPanel2.add(new JLabel("JDBC Driver"));
jPanel2.add(new JLabel("Database URL"));
jPanel2.add(new JLabel("Username"));
jPanel2.add(new JLabel("Password"));
jPanel2.add(new JLabel("Table Name"));
JPanel jPanel3 = new JPanel(new BorderLayout());
jPanel3.add(jbtConnect, BorderLayout.SOUTH);
jPanel3.add(jPanel2, BorderLayout.WEST);
jPanel3.add(jPanel1, BorderLayout.CENTER);
tableEditor1.setPreferredSize(new Dimension(400, 200));
jcboURL.setEditable(true);
jcboDriver.setEditable(true);
add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
jPanel3, tableEditor1), BorderLayout.CENTER);
add(jlblStatus, BorderLayout.SOUTH);
jbtConnect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
try {
Class.forName(((String)jcboDriver.getSelectedItem()).trim());
RowSet rowSet = new CachedRowSetImpl();
rowSet.setUrl(((String)jcboURL.getSelectedItem()).trim());
rowSet.setUsername(jtfUserName.getText().trim());
rowSet.setPassword(new String(jpfPassword.getPassword()));
rowSet.setCommand("select * from " +
jtfTableName.getText().trim());
rowSet.execute();
rowSet.beforeFirst();
tableEditor1.setRowSet(rowSet);
}
catch (Exception ex) {
jlblStatus.setText(ex.toString());
}
}
});
}
public static void main(String[] args) {
TestTableEditor applet = new TestTableEditor();
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(3);
frame.setTitle("TestTableEditor");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}