Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.69 KB | None | 0 0
  1. package TableQueryTool;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.sql.SQLException;
  8.  
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JOptionPane;
  13. import javax.swing.JPanel;
  14. import javax.swing.JScrollPane;
  15. import javax.swing.JTable;
  16. //import javax.swing.JTextArea;
  17. import javax.swing.JTextField;
  18.  
  19. @SuppressWarnings("serial")
  20. public class TableFrame extends JFrame {
  21.  
  22.     private JTextField queryField;
  23.     private JTable resultTable;
  24.     private TableModel tableModel;
  25.     //private JTextArea queryArea;
  26.     private JScrollPane scroll;
  27.    
  28.     static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
  29.     static final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:MINIDB";
  30.     static final String USERNAME = "student";
  31.     static final String PASSWORD = "xios";
  32.  
  33.     //static final String QUERY = "SELECT FIRST_NAME FROM EMPLOYEES";
  34.  
  35.     public TableFrame() {
  36.  
  37.         super("Table Frame");
  38.         this.setLayout(new BorderLayout());
  39.  
  40.         JPanel north = new JPanel();
  41.         north.setLayout(new BorderLayout());
  42.  
  43.         JLabel queryLabel = new JLabel("Query: ");
  44.         north.add(queryLabel,BorderLayout.WEST);
  45.  
  46.         queryField = new JTextField(50);
  47.         north.add(queryField,BorderLayout.CENTER);
  48.  
  49.         JButton queryButton = new JButton("Execute");
  50.         north.add(queryButton,BorderLayout.EAST);
  51.  
  52.         this.add(north, BorderLayout.NORTH);
  53.        
  54.         resultTable = new JTable();
  55.         resultTable.setBackground(Color.LIGHT_GRAY);
  56.         scroll = new JScrollPane(resultTable);
  57.         this.add(scroll,BorderLayout.CENTER);
  58.  
  59.         ActionHandler ah = new ActionHandler();
  60.         queryField.addActionListener(ah); // respond to "enter" in query field
  61.         queryButton.addActionListener(ah); // respond to button pressed
  62.     }
  63.  
  64.     private void executeQuery() {
  65.         // TODO: Execute database query, get results, display results
  66.  
  67.         try {
  68.             Class.forName(DRIVER);
  69.         } catch (ClassNotFoundException e) {
  70.             // TODO Auto-generated catch block
  71.             e.printStackTrace();
  72.         }
  73.  
  74.         try {
  75.  
  76.             tableModel = new TableModel(DATABASE_URL, USERNAME, PASSWORD, queryField.getText());
  77.  
  78.             // display query from textfield
  79.             System.out.println("Query: " + queryField.getText());
  80.  
  81.             // put output in JTable
  82.             if (tableModel != null) {
  83.                 resultTable.setModel(tableModel);
  84.             }      
  85.         }
  86.         catch (SQLException sqlEx) {
  87.             JOptionPane.showMessageDialog(null, sqlEx.getMessage(), "Database error", JOptionPane.ERROR_MESSAGE);
  88.  
  89.             tableModel.disconnectFromDatabase();
  90.             System.exit(0);
  91.  
  92.         }
  93.  
  94.     }  
  95.  
  96.     private class ActionHandler implements ActionListener
  97.     {
  98.         public void actionPerformed(ActionEvent ae) {
  99.  
  100.             executeQuery();        
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement