//Author: ^-^Veerle^-^ import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JTextField; import java.awt.GridLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.Calendar; import java.sql.Connection; import java.sql.Statement; import java.sql.SQLException; public class databaseTab extends JPanel implements ActionListener { private String strTable = ""; private JButton cmdSave; private JLabel lblTitle, lblYear, lblStatus; private JPanel panTitle, panYear, panStatus; private JTextField txtTitle, txtYear; private Connection databaseConnection; public databaseTab (String strTable, Connection databaseConnection) { this.strTable = strTable; this.databaseConnection = databaseConnection; cmdSave = new JButton("Save"); cmdSave.addActionListener(this); lblTitle = new JLabel("Title: ", JLabel.RIGHT); lblYear = new JLabel("Year: ", JLabel.RIGHT); lblStatus = new JLabel("Enter data and click save", JLabel.CENTER); txtTitle = new JTextField("", 5); txtYear = new JTextField("", 5); panTitle = new JPanel(); panYear = new JPanel(); panStatus = new JPanel(); this.setLayout(new GridLayout(3, 1)); this.add(panTitle); panTitle.add(lblTitle); panTitle.add(txtTitle); this.add(panYear); panYear.add(lblYear); panYear.add(txtYear); this.add(panStatus); panStatus.add(cmdSave); panStatus.add(lblStatus); } private int getYear () throws NumberFormatException { int year = 0; try { year = Integer.parseInt(txtYear.getText()); } catch (NumberFormatException ex) { throw new NumberFormatException("The entered year is not a legal numeric value"); } Calendar calNow = Calendar.getInstance(); int currentYear = calNow.get(Calendar.YEAR); if (year < 1900 || year > currentYear) { throw new NumberFormatException("The year must be between 1900 and " + currentYear); } return year; } private void saveRecord (String strTitle, int year) throws SQLException { Statement s = databaseConnection.createStatement(); s.execute("insert into " + strTable + " values('" + strTitle + "', " + year + ")"); s.close(); } public void actionPerformed (ActionEvent e) { lblStatus.setText(""); String strTitle = txtTitle.getText(); int year = 0; try { if (strTitle.equals("")) { lblStatus.setText("Title field is empty"); } else { year = getYear(); saveRecord(strTitle, year); txtTitle.setText(""); txtYear.setText(""); txtTitle.requestFocus(); lblStatus.setText("Record saved successfully"); } } catch (NumberFormatException ex) { lblStatus.setText(ex.getMessage()); } catch (SQLException ex) { lblStatus.setText("Error writing Record to table " + strTable); } } }