package windowsform; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.WindowConstants; import javax.swing.border.EmptyBorder; import core.business.KeyValue; import connect.sqlite.ConnectData; import java.awt.Button; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; import java.awt.Label; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.JLabel; import java.awt.Color; import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.SystemColor; import javax.swing.JButton; import javax.swing.JComboBox; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; @SuppressWarnings("serial") public class RoomFrom extends JInternalFrame { private JPanel contentPane; private static JTable table; private static JComboBox cb_roomStatusID; private static JTextField txt_idroom; private static JTextField txt_roomName; private static JTextField txt_Floor; private static JTextField txt_roomStatusID; private static JTextField txt_roomNoOfAdult; private static JTextField txt_roomNoOfChild; private static JTextField txt_roomFee; /** * Launch the application. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static void showTable() { Vector<String> rowHeader = new Vector (); rowHeader.add ("roomID"); rowHeader.add ("roomName"); rowHeader.add ("roomFloor"); rowHeader.add ("roomStatusID"); rowHeader.add ("roomNoOfAdult"); rowHeader.add ("roomNoOfChild"); rowHeader.add ("roomFee"); DefaultTableModel model = new DefaultTableModel(rowHeader,0); table.setModel(model); ConnectData ds=new ConnectData(); ds.connect(); //String newSQL="SELECT * FROM Room"; String newSQL="SELECT roomID,roomName,roomFloor, (CASE WHEN roomStatusID='1' THEN 'Available' ELSE 'Unavailable' END) AS roomStatusID, roomNoOfAdult,roomNoOfChild,roomFee FROM Room"; try { ResultSet rs =ds.ExcuteQuery(newSQL); Vector rowData; if (rs != null) while (rs.next()){ rowData = new Vector() ; rowData.add (rs.getString("roomID")); //rowData.add (String.valueOf(rs.getInt("roomName"))); rowData.add (rs.getString("roomName")); rowData.add (rs.getString("roomFloor")); rowData.add (rs.getString("roomStatusID")); rowData.add (rs.getString("roomNoOfAdult")); rowData.add (rs.getString("roomNoOfChild")); rowData.add (rs.getString("roomFee")); model.addRow(rowData) ; } rs.close(); ds.dispose(); } catch(Exception ex){System.out.println("Error : "+ex);} } public static void showCombo(){ ConnectData ds=new ConnectData(); ds.connect(); String newSQL="SELECT roomStatusID,roomStatusName FROM RoomStatus"; try { ResultSet rs =ds.ExcuteQuery(newSQL); if (rs != null) while (rs.next()){ //cb_roomStatusID.addItem((String)rs.getString("roomStatusName")); cb_roomStatusID.addItem(new KeyValue(rs.getString("roomStatusID"),rs.getString("roomStatusName"))); } rs.close(); ds.dispose(); } catch(Exception ex){System.out.println("Error : " + ex);} } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { RoomFrom frame = new RoomFrom(); frame.setVisible(true); showTable(); showCombo(); table.selectAll(); comboUpdate(); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public RoomFrom() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(0, 122, 528, 505); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); txt_idroom = new JTextField(); txt_idroom.setEditable(false); txt_idroom.setBounds(219, 58, 78, 22); txt_Floor = new JTextField(); txt_Floor.setBounds(219, 114, 148, 22); txt_roomName = new JTextField(); txt_roomName.setBounds(219, 86, 148, 22); Label label = new Label("RoomID"); label.setBounds(56, 58, 84, 22); Label label_1 = new Label("Floor"); label_1.setBounds(56, 114, 84, 22); Label label_2 = new Label("roomName"); label_2.setBounds(56, 86, 84, 22); Label label_3 = new Label("RoomStatusID"); label_3.setBounds(56, 142, 127, 22); Label label_4 = new Label("roomNoOfAdult"); label_4.setBounds(56, 170, 115, 22); txt_roomNoOfAdult = new JTextField(); txt_roomNoOfAdult.setBounds(219, 170, 148, 22); txt_roomNoOfChild = new JTextField(); txt_roomNoOfChild.setBounds(219, 198, 148, 22); Label label_5 = new Label("roomNoOfChild"); label_5.setBounds(56, 198, 127, 22); txt_roomFee = new JTextField(); txt_roomFee.setBounds(219, 226, 148, 22); cb_roomStatusID = new JComboBox(); cb_roomStatusID.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { } }); cb_roomStatusID.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { String statusID = ((KeyValue) cb_roomStatusID.getSelectedItem()).getKey(); txt_roomStatusID.setText(statusID.toString()); } }); cb_roomStatusID.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String statusID = ((KeyValue) cb_roomStatusID.getSelectedItem()).getKey(); txt_roomStatusID.setText(statusID.toString()); } }); cb_roomStatusID.setBounds(219, 142, 148, 22); contentPane.add(cb_roomStatusID); Button button = new Button("Add"); button.setBounds(166, 427, 70, 22); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { ConnectData ds=new ConnectData(); ds.connect(); int floor=Integer.parseInt(txt_Floor.getText()); String roomName=txt_roomName.getText(); int roomNoOfAdult=Integer.parseInt(txt_roomNoOfAdult.getText()); int roomNoOfChild=Integer.parseInt(txt_roomNoOfChild.getText()); int roomStatusID=Integer.parseInt(txt_roomStatusID.getText()); int roomFee=Integer.parseInt(txt_roomFee.getText()); //String sql_insert="insert into Room values('"+idroom+"','"+roomName+ "','"+ floor+ "','" +roomStatusID+"','"+roomNoOfAdult+"','"+roomNoOfChild+"','"+ roomFee +"')"; String sql_insert="insert into Room values("+ null +",'"+roomName+ "','"+ floor+ "','" +roomStatusID+"','"+roomNoOfAdult+"','"+roomNoOfChild+"','"+ roomFee +"')"; if(ds.queryExcuteUpdate(sql_insert)) { JOptionPane.showMessageDialog(null,"Successfull"); showTable(); } else JOptionPane.showMessageDialog(null,"fail"); try { ds.dispose(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); Button button_1 = new Button("Delete"); button_1.setBounds(297, 427, 70, 22); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ConnectData ds=new ConnectData(); ds.connect(); String roomID=txt_idroom.getText(); String sql_insert="delete from Room where roomID='"+roomID+"'"; if(ds.queryExcuteUpdate(sql_insert)){ JOptionPane.showMessageDialog(null,"delete Successfull"); showTable();} else JOptionPane.showMessageDialog(null,"delete fail"); try { ds.dispose(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); Button button_2 = new Button("Update"); button_2.setBounds(414, 427, 70, 22); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ConnectData ds=new ConnectData(); ds.connect(); int idroom= Integer.parseInt(txt_idroom.getText()); int floor=Integer.parseInt(txt_Floor.getText()); String roomName=txt_roomName.getText(); int roomNoOfAdult=Integer.parseInt(txt_roomNoOfAdult.getText()); int roomNoOfChild=Integer.parseInt(txt_roomNoOfChild.getText()); int roomStatusID=Integer.parseInt(txt_roomStatusID.getText()); float roomFee= Float.parseFloat(txt_roomFee.getText()); String sql_insert="Update Room Set roomID="+idroom+",roomName='"+roomName+ "',roomFloor="+ floor+ ",roomStatusID=" +roomStatusID+",roomNoOfAdult="+roomNoOfAdult+",roomNoOfChild="+roomNoOfChild+",roomFee="+ roomFee +" where roomID=" + idroom ; if(ds.queryExcuteUpdate(sql_insert)) { JOptionPane.showMessageDialog(null,"Successfull"); showTable(); } else JOptionPane.showMessageDialog(null,"fail"); try { ds.dispose(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); contentPane.setLayout(null); contentPane.add(label); contentPane.add(txt_idroom); contentPane.add(label_1); contentPane.add(txt_Floor); contentPane.add(label_2); contentPane.add(txt_roomName); contentPane.add(label_3); contentPane.add(label_4); contentPane.add(txt_roomNoOfAdult); contentPane.add(label_5); contentPane.add(txt_roomNoOfChild); contentPane.add(txt_roomFee); contentPane.add(button); contentPane.add(button_1); contentPane.add(button_2); Label label_6 = new Label("roomFee"); label_6.setBounds(56, 226, 62, 22); contentPane.add(label_6); JLabel lblNewLabel = new JLabel("Room Management"); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 20)); lblNewLabel.setForeground(SystemColor.desktop); lblNewLabel.setBounds(166, 11, 230, 29); contentPane.add(lblNewLabel); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 264, 500, 136); contentPane.add(scrollPane); table = new JTable(); table.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent arg0) { comboUpdate(); } }); table.setBackground(new Color(255, 255, 153)); table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { comboUpdate(); } }); scrollPane.setViewportView(table); JButton btnNew = new JButton("New"); btnNew.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { txt_idroom.setText(""); txt_roomName.setText(""); txt_Floor.setText(""); txt_roomStatusID.setText(""); txt_roomNoOfAdult.setText(""); txt_roomNoOfChild.setText(""); txt_roomFee.setText(""); } }); btnNew.setBounds(40, 427, 78, 23); contentPane.add(btnNew); txt_roomStatusID = new JTextField(); txt_roomStatusID.setEnabled(false); txt_roomStatusID.setEditable(false); txt_roomStatusID.setBounds(219, 142, -22, 22); contentPane.add(txt_roomStatusID); this.setClosable(true); this.setMaximizable(true); this.setVisible(true); this.setResizable(true); this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); showTable(); showCombo(); table.selectAll(); comboUpdate(); } public JTable getTable() { return table; } // public int getRowCount() { ConnectData ds=new ConnectData(); ds.connect(); String newSQL="SELECT * FROM Room"; try { ResultSet rs =ds.ExcuteQuery(newSQL); rs.last(); return rs.getRow(); } catch (SQLException ex) { System.out.print(ex); return 0; } } public Object getValueAt(int row, int column) { ConnectData ds=new ConnectData(); ds.connect(); String newSQL="SELECT * FROM Room"; try { ResultSet rs =ds.ExcuteQuery(newSQL); rs.absolute(row + 1); return rs.getObject(column + 1); } catch (SQLException ex) { System.out.print(ex); return null; } } public static void comboUpdate() { int row = table.getSelectedRow(); txt_idroom.setText((String) table.getValueAt(row, 0)); txt_roomName.setText((String) table.getValueAt(row, 1)); txt_Floor.setText((String) table.getValueAt(row, 2)); txt_roomStatusID.setText(((String) table.getValueAt(row, 3)=="Available")? "1": "2"); txt_roomNoOfAdult.setText((String) table.getValueAt(row, 4)); txt_roomNoOfChild.setText((String) table.getValueAt(row, 5)); txt_roomFee.setText((String) table.getValueAt(row, 6)); ConnectData ds=new ConnectData(); ds.connect(); String value = null; String statusID = (((String) table.getValueAt(row, 3)).equals("Available")? "1": "2"); System.out.println((String) table.getValueAt(row, 3)); System.out.println(statusID); String newSQL="SELECT roomStatusName FROM RoomStatus where roomStatusID='" + statusID +"'"; try { ResultSet rs =ds.ExcuteQuery(newSQL); if (rs != null) { value = (String)rs.getString("roomStatusName"); //System.out.println(value); } rs.close(); ds.dispose(); } catch(Exception ex){System.out.println("Error : " + ex);} int a=0; for (int i=0; i<cb_roomStatusID.getItemCount(); i++){ if(((KeyValue)cb_roomStatusID.getItemAt(i)).getValue().equals(value)) { a=i; break; } } cb_roomStatusID.setSelectedIndex(a); } }