Advertisement
Guest User

Untitled

a guest
Dec 25th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.75 KB | None | 0 0
  1. import java.awt.FlowLayout;
  2. import javax.swing.JButton;
  3. import javax.swing.JDialog;
  4. import javax.swing.JPanel;
  5. import javax.swing.JScrollPane;
  6. import javax.swing.event.ListSelectionEvent;
  7. import javax.swing.table.DefaultTableModel;
  8. import javax.swing.JTable;
  9. import javax.swing.JLabel;
  10. import java.awt.Font;
  11. import java.sql.Connection;
  12. import java.sql.DriverManager;
  13. import java.sql.ResultSet;
  14. import java.sql.ResultSetMetaData;
  15. import java.sql.SQLException;
  16. import java.sql.Statement;
  17. import java.util.Vector;
  18. import javax.swing.JTextField;
  19. import javax.swing.UIManager;
  20. import javax.swing.UnsupportedLookAndFeelException;
  21.  
  22. import java.awt.event.ActionListener;
  23. import java.awt.event.ActionEvent;
  24.  
  25. public class GUI extends JDialog {
  26.  
  27. private JTextField txtID;
  28. private JTextField txtName;
  29. private JTextField txtDep;
  30. private JTextField txtGender;
  31. private JTextField txtPosition;
  32. private JTextField txtSalary;
  33. private JTable table;
  34. ResultSet rs;
  35. Connection conn;
  36. Statement statement;
  37.  
  38. public GUI() throws SQLException {
  39.  
  40. setBounds(100, 100, 671, 448);
  41. getContentPane().setLayout(null);
  42. try {
  43. // Set System L&F
  44. UIManager.setLookAndFeel(
  45. UIManager.getSystemLookAndFeelClassName());
  46. } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
  47. System.out.println(ex.getMessage());
  48. }
  49.  
  50.  
  51. table = new JTable();
  52. JScrollPane scrollPane = new JScrollPane();
  53. scrollPane.setBounds(10, 11, 635, 205);
  54. getContentPane().add(scrollPane);
  55.  
  56. scrollPane.setViewportView(table);
  57.  
  58. String dbURl = "jdbc:mysql://localhost:3306/employees";
  59. try {
  60. conn = DriverManager.getConnection(dbURl, "root", "1234");
  61. if (conn != null) {
  62. System.out.println("Connected");
  63.  
  64. String s1 = "SELECT * FROM employees";
  65. statement = conn.createStatement();
  66.  
  67. rs = statement.executeQuery(s1);
  68.  
  69. table.setModel(buildTableModel(rs));
  70. table.setBounds(10, 11, 634, 216);
  71.  
  72. }
  73.  
  74. } catch (Exception ex) {
  75. System.out.println(ex.getMessage());
  76. }
  77.  
  78. table.getSelectionModel().addListSelectionListener((ListSelectionEvent event) -> {
  79. try {
  80.  
  81. if (table.getSelectedRow() >= 0) {
  82. Object employee_id = table.getValueAt(table.getSelectedRow(), 0);
  83. Object full_name = table.getValueAt(table.getSelectedRow(), 1);
  84. Object gender = table.getValueAt(table.getSelectedRow(), 2);
  85. Object department = table.getValueAt(table.getSelectedRow(), 3);
  86. Object position = table.getValueAt(table.getSelectedRow(), 4);
  87. Object salary = table.getValueAt(table.getSelectedRow(), 5);
  88.  
  89. txtID.setText(employee_id.toString());
  90. txtName.setText(full_name.toString());
  91. txtGender.setText(gender.toString());
  92. txtDep.setText(department.toString());
  93. txtPosition.setText(position.toString());
  94. txtSalary.setText(salary.toString());
  95. }
  96. } catch (Exception ex) {
  97. System.out.println(ex.getMessage());
  98. }
  99. });
  100.  
  101. JPanel buttonPane = new JPanel();
  102. buttonPane.setBounds(0, 376, 655, 33);
  103. FlowLayout fl_buttonPane = new FlowLayout(FlowLayout.LEFT);
  104. fl_buttonPane.setHgap(10);
  105. buttonPane.setLayout(fl_buttonPane);
  106. getContentPane().add(buttonPane);
  107.  
  108. JButton btnAdd = new JButton("ADD");
  109. btnAdd.addActionListener(new ActionListener() {
  110. public void actionPerformed(ActionEvent arg0) {
  111. String sql_stmt = "INSERT INTO employees (full_name,gender,department,position,salary)";
  112. sql_stmt += " VALUES ('" + txtName.getText() + "','" + txtGender.getText() + "','" + txtDep.getText()
  113. + "','" + txtPosition.getText() + "','" + txtSalary.getText() + "')";
  114.  
  115. try {
  116.  
  117. statement.executeUpdate(sql_stmt);
  118. rs = statement.executeQuery("select * from employees");
  119. table.setModel(buildTableModel(rs));
  120.  
  121. } catch (SQLException e) {
  122. System.out.println(e.getMessage());
  123. }
  124.  
  125. clearInputBoxes();
  126. }
  127. });
  128. buttonPane.add(btnAdd);
  129.  
  130. JButton btnUpdate = new JButton("UPDATE");
  131. btnUpdate.addActionListener(new ActionListener() {
  132. public void actionPerformed(ActionEvent arg0) {
  133. String sql_stmt3 = "UPDATE employees SET full_name = '" + txtName.getText() + "'";
  134. sql_stmt3 += ",gender = '" + txtGender.getText() + "'";
  135. sql_stmt3 += ",department = '" + txtDep.getText() + "'";
  136. sql_stmt3 += ",position = '" + txtPosition.getText() + "'";
  137. sql_stmt3 += ",salary = '" + txtSalary.getText() + "'";
  138. sql_stmt3 += " WHERE employee_id = '" + txtID.getText() + "'";
  139.  
  140. try {
  141.  
  142. statement.executeUpdate(sql_stmt3);
  143. rs = statement.executeQuery("select * from employees");
  144. table.setModel(buildTableModel(rs));
  145.  
  146. } catch (SQLException e) {
  147. System.out.println(e.getMessage());
  148. }
  149.  
  150. clearInputBoxes();
  151. }
  152. });
  153. btnUpdate.setActionCommand("OK");
  154. buttonPane.add(btnUpdate);
  155. getRootPane().setDefaultButton(btnUpdate);
  156.  
  157. JButton btnDel = new JButton("DELETE");
  158. btnDel.addActionListener(new ActionListener() {
  159. public void actionPerformed(ActionEvent arg0) {
  160.  
  161. String sql_stmt2 = "DELETE FROM employees WHERE employee_id = '" + txtID.getText() + "'";
  162. try {
  163.  
  164. statement.executeUpdate(sql_stmt2);
  165. rs = statement.executeQuery("select * from employees");
  166. table.setModel(buildTableModel(rs));
  167.  
  168. } catch (SQLException e) {
  169. System.out.println(e.getMessage());
  170. }
  171.  
  172. clearInputBoxes();
  173. }
  174.  
  175. });
  176.  
  177. btnDel.setActionCommand("Cancel");
  178. buttonPane.add(btnDel);
  179.  
  180. JLabel lblID = new JLabel("ID");
  181. lblID.setFont(new Font("Verdana", Font.BOLD, 14));
  182. lblID.setBounds(26, 237, 79, 23);
  183. getContentPane().add(lblID);
  184.  
  185. JLabel lblFullname = new JLabel("Fullname");
  186. lblFullname.setFont(new Font("Verdana", Font.BOLD, 14));
  187. lblFullname.setBounds(26, 271, 79, 23);
  188. getContentPane().add(lblFullname);
  189.  
  190. JLabel lblGender = new JLabel("Gender");
  191. lblGender.setFont(new Font("Verdana", Font.BOLD, 14));
  192. lblGender.setBounds(340, 237, 79, 23);
  193. getContentPane().add(lblGender);
  194.  
  195. JLabel lblPosition = new JLabel("Position");
  196. lblPosition.setFont(new Font("Verdana", Font.BOLD, 14));
  197. lblPosition.setBounds(340, 271, 79, 23);
  198. getContentPane().add(lblPosition);
  199.  
  200. JLabel lblDep = new JLabel("DEP");
  201. lblDep.setFont(new Font("Verdana", Font.BOLD, 14));
  202. lblDep.setBounds(26, 305, 79, 23);
  203. getContentPane().add(lblDep);
  204.  
  205. JLabel lblSalary = new JLabel("Salary");
  206. lblSalary.setFont(new Font("Verdana", Font.BOLD, 14));
  207. lblSalary.setBounds(340, 305, 79, 23);
  208. getContentPane().add(lblSalary);
  209.  
  210. txtID = new JTextField();
  211. txtID.setBounds(115, 240, 215, 20);
  212. getContentPane().add(txtID);
  213. txtID.setColumns(10);
  214.  
  215. txtName = new JTextField();
  216. txtName.setColumns(10);
  217. txtName.setBounds(115, 274, 215, 20);
  218. getContentPane().add(txtName);
  219.  
  220. txtDep = new JTextField();
  221. txtDep.setColumns(10);
  222. txtDep.setBounds(115, 308, 215, 20);
  223. getContentPane().add(txtDep);
  224.  
  225. txtGender = new JTextField();
  226. txtGender.setColumns(10);
  227. txtGender.setBounds(429, 240, 107, 20);
  228. getContentPane().add(txtGender);
  229.  
  230. txtPosition = new JTextField();
  231. txtPosition.setColumns(10);
  232. txtPosition.setBounds(429, 274, 215, 20);
  233. getContentPane().add(txtPosition);
  234.  
  235. txtSalary = new JTextField();
  236. txtSalary.setColumns(10);
  237. txtSalary.setBounds(429, 308, 215, 20);
  238. getContentPane().add(txtSalary);
  239.  
  240. }
  241.  
  242. public static DefaultTableModel buildTableModel(ResultSet rs) throws SQLException {
  243.  
  244. ResultSetMetaData metaData = rs.getMetaData();
  245.  
  246. // names of columns
  247. Vector<String> columnNames = new Vector<String>();
  248.  
  249. int columnCount = metaData.getColumnCount();
  250.  
  251. for (int column = 1; column <= columnCount; column++) {
  252. columnNames.add(metaData.getColumnName(column));
  253.  
  254. }
  255.  
  256. // data of the table
  257. Vector<Vector<Object>> data = new Vector<Vector<Object>>();
  258.  
  259. while (rs.next()) {
  260.  
  261. Vector<Object> vector = new Vector<Object>();
  262.  
  263. for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
  264. vector.add(rs.getObject(columnIndex));
  265. }
  266. data.add(vector);
  267. }
  268.  
  269. return new DefaultTableModel(data, columnNames);
  270.  
  271. }
  272.  
  273. private void clearInputBoxes() {
  274. txtID.setText("");
  275. txtName.setText("");
  276. txtGender.setText("");
  277. txtDep.setText("");
  278. txtPosition.setText("");
  279. txtSalary.setText("");
  280. }
  281.  
  282. public static void main(String[] args) throws Exception {
  283. GUI g = new GUI();
  284. g.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  285. g.setVisible(true);
  286. }
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement