Skip to main content
Bumped by Community user
last i -> I
Source Link
Marc-Andre
  • 6.7k
  • 5
  • 38
  • 65

I have been studying Java for 4 months and this project is what iI came up with. I know I should make more classes and methods for quality but I am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this.

I have been studying Java for 4 months and this project is what i came up with. I know I should make more classes and methods for quality but I am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this.

I have been studying Java for 4 months and this project is what I came up with. I know I should make more classes and methods for quality but I am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this.

deleted 4 characters in body; edited tags; edited title
Source Link
200_success
  • 144.2k
  • 22
  • 188
  • 473

Java SQL JTable, my first project, how can i simplify my code any suggestions for employees in SQL table

I amhave been studying javaJava for 4 months and this project is what i came up with, i. I know iI should make more classes and methods for quality but iI am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this. thank you.

Java SQL JTable, my first project, how can i simplify my code any suggestions

I am studying java for 4 months and this project is what i came up with, i know i should make more classes and methods for quality but i am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this. thank you.

JTable for employees in SQL table

I have been studying Java for 4 months and this project is what i came up with. I know I should make more classes and methods for quality but I am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this.

Source Link

Java SQL JTable, my first project, how can i simplify my code any suggestions

I am studying java for 4 months and this project is what i came up with, i know i should make more classes and methods for quality but i am still learning. Please help to me if there is any simpler and cleaner ways to achieve the same results as this. thank you.

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;
import javax.swing.JLabel;
import java.awt.Font;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class GUI extends JDialog {

    private JTextField txtID;
    private JTextField txtName;
    private JTextField txtDep;
    private JTextField txtGender;
    private JTextField txtPosition;
    private JTextField txtSalary;
    private JTable table;
    ResultSet rs;
    Connection conn;
    Statement statement;

    public GUI() throws SQLException {

        setBounds(100, 100, 671, 448);
        getContentPane().setLayout(null);
         try {
                // Set System L&F
                UIManager.setLookAndFeel(
                        UIManager.getSystemLookAndFeelClassName());
            } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
                System.out.println(ex.getMessage());
            }


        table = new JTable();
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(10, 11, 635, 205);
        getContentPane().add(scrollPane);

        scrollPane.setViewportView(table);

        String dbURl = "jdbc:mysql://localhost:3306/employees";
        try {
            conn = DriverManager.getConnection(dbURl, "root", "1234");
            if (conn != null) {
                System.out.println("Connected");

                String s1 = "SELECT * FROM employees";
                statement = conn.createStatement();

                rs = statement.executeQuery(s1);

                table.setModel(buildTableModel(rs));
                table.setBounds(10, 11, 634, 216);

            }

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

        table.getSelectionModel().addListSelectionListener((ListSelectionEvent event) -> {
            try {

                if (table.getSelectedRow() >= 0) {
                    Object employee_id = table.getValueAt(table.getSelectedRow(), 0);
                    Object full_name = table.getValueAt(table.getSelectedRow(), 1);
                    Object gender = table.getValueAt(table.getSelectedRow(), 2);
                    Object department = table.getValueAt(table.getSelectedRow(), 3);
                    Object position = table.getValueAt(table.getSelectedRow(), 4);
                    Object salary = table.getValueAt(table.getSelectedRow(), 5);

                    txtID.setText(employee_id.toString());
                    txtName.setText(full_name.toString());
                    txtGender.setText(gender.toString());
                    txtDep.setText(department.toString());
                    txtPosition.setText(position.toString());
                    txtSalary.setText(salary.toString());
                }
            } catch (Exception ex) {
                System.out.println(ex.getMessage());
            }
        });

        JPanel buttonPane = new JPanel();
        buttonPane.setBounds(0, 376, 655, 33);
        FlowLayout fl_buttonPane = new FlowLayout(FlowLayout.LEFT);
        fl_buttonPane.setHgap(10);
        buttonPane.setLayout(fl_buttonPane);
        getContentPane().add(buttonPane);

        JButton btnAdd = new JButton("ADD");
        btnAdd.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String sql_stmt = "INSERT INTO employees (full_name,gender,department,position,salary)";
                sql_stmt += " VALUES ('" + txtName.getText() + "','" + txtGender.getText() + "','" + txtDep.getText()
                        + "','" + txtPosition.getText() + "','" + txtSalary.getText() + "')";

                try {

                    statement.executeUpdate(sql_stmt);
                    rs = statement.executeQuery("select * from employees");
                    table.setModel(buildTableModel(rs));

                } catch (SQLException e) {
                    System.out.println(e.getMessage());
                }

                clearInputBoxes();
            }
        });
        buttonPane.add(btnAdd);

        JButton btnUpdate = new JButton("UPDATE");
        btnUpdate.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String sql_stmt3 = "UPDATE employees SET full_name = '" + txtName.getText() + "'";
                sql_stmt3 += ",gender = '" + txtGender.getText() + "'";
                sql_stmt3 += ",department = '" + txtDep.getText() + "'";
                sql_stmt3 += ",position = '" + txtPosition.getText() + "'";
                sql_stmt3 += ",salary = '" + txtSalary.getText() + "'";
                sql_stmt3 += " WHERE employee_id = '" + txtID.getText() + "'";

                try {

                    statement.executeUpdate(sql_stmt3);
                    rs = statement.executeQuery("select * from employees");
                    table.setModel(buildTableModel(rs));

                } catch (SQLException e) {
                    System.out.println(e.getMessage());
                }

                clearInputBoxes();
            }
        });
        btnUpdate.setActionCommand("OK");
        buttonPane.add(btnUpdate);
        getRootPane().setDefaultButton(btnUpdate);

        JButton btnDel = new JButton("DELETE");
        btnDel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                String sql_stmt2 = "DELETE FROM employees WHERE employee_id = '" + txtID.getText() + "'";
                try {

                    statement.executeUpdate(sql_stmt2);
                    rs = statement.executeQuery("select * from employees");
                    table.setModel(buildTableModel(rs));

                } catch (SQLException e) {
                    System.out.println(e.getMessage());
                }

                clearInputBoxes();
            }

        });

        btnDel.setActionCommand("Cancel");
        buttonPane.add(btnDel);

        JLabel lblID = new JLabel("ID");
        lblID.setFont(new Font("Verdana", Font.BOLD, 14));
        lblID.setBounds(26, 237, 79, 23);
        getContentPane().add(lblID);

        JLabel lblFullname = new JLabel("Fullname");
        lblFullname.setFont(new Font("Verdana", Font.BOLD, 14));
        lblFullname.setBounds(26, 271, 79, 23);
        getContentPane().add(lblFullname);

        JLabel lblGender = new JLabel("Gender");
        lblGender.setFont(new Font("Verdana", Font.BOLD, 14));
        lblGender.setBounds(340, 237, 79, 23);
        getContentPane().add(lblGender);

        JLabel lblPosition = new JLabel("Position");
        lblPosition.setFont(new Font("Verdana", Font.BOLD, 14));
        lblPosition.setBounds(340, 271, 79, 23);
        getContentPane().add(lblPosition);

        JLabel lblDep = new JLabel("DEP");
        lblDep.setFont(new Font("Verdana", Font.BOLD, 14));
        lblDep.setBounds(26, 305, 79, 23);
        getContentPane().add(lblDep);

        JLabel lblSalary = new JLabel("Salary");
        lblSalary.setFont(new Font("Verdana", Font.BOLD, 14));
        lblSalary.setBounds(340, 305, 79, 23);
        getContentPane().add(lblSalary);

        txtID = new JTextField();
        txtID.setBounds(115, 240, 215, 20);
        getContentPane().add(txtID);
        txtID.setColumns(10);

        txtName = new JTextField();
        txtName.setColumns(10);
        txtName.setBounds(115, 274, 215, 20);
        getContentPane().add(txtName);

        txtDep = new JTextField();
        txtDep.setColumns(10);
        txtDep.setBounds(115, 308, 215, 20);
        getContentPane().add(txtDep);

        txtGender = new JTextField();
        txtGender.setColumns(10);
        txtGender.setBounds(429, 240, 107, 20);
        getContentPane().add(txtGender);

        txtPosition = new JTextField();
        txtPosition.setColumns(10);
        txtPosition.setBounds(429, 274, 215, 20);
        getContentPane().add(txtPosition);

        txtSalary = new JTextField();
        txtSalary.setColumns(10);
        txtSalary.setBounds(429, 308, 215, 20);
        getContentPane().add(txtSalary);

    }

    public static DefaultTableModel buildTableModel(ResultSet rs) throws SQLException {

        ResultSetMetaData metaData = rs.getMetaData();

        // names of columns
        Vector<String> columnNames = new Vector<String>();

        int columnCount = metaData.getColumnCount();

        for (int column = 1; column <= columnCount; column++) {
            columnNames.add(metaData.getColumnName(column));

        }

        // data of the table
        Vector<Vector<Object>> data = new Vector<Vector<Object>>();

        while (rs.next()) {

            Vector<Object> vector = new Vector<Object>();

            for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                vector.add(rs.getObject(columnIndex));
            }
            data.add(vector);
        }

        return new DefaultTableModel(data, columnNames);

    }

    private void clearInputBoxes() {
        txtID.setText("");
        txtName.setText("");
        txtGender.setText("");
        txtDep.setText("");
        txtPosition.setText("");
        txtSalary.setText("");
    }

    public static void main(String[] args) throws Exception {
        GUI g = new GUI();
        g.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        g.setVisible(true);
    }
}