Room Vacant

frame = new JFrame("Room Vacant");
Utils.centeredFrame(frame, winWidth, winHeight, "Room Vacant");
frame.setResizable(false);
Container mainContainer=frame.getContentPane();
mainContainer.setBackground(Color.gray);
panelWid = winWidth-winWidth/20;
panelHig = winHeight-winHeight/10;
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setOpaque(false);
panel.setBackground(Color.white);
panel.setSize(new Dimension(winWidth-winWidth/20,winHeight-winHeight/10));
panel.setLocation(winWidth/50,winHeight/40);
mainContainer.add(panel,BorderLayout.CENTER);
After creation of window, we will add a canvas background.
JComponent jcomponent=new Background(winWidth/50,winHeight/40,(winWidth-winWidth/20),winHeight-winHeight/10);
mainContainer.add(jcomponent,BorderLayout.CENTER);
public class Background extends JComponent {
int width, height,setX,setY;
public Background (int setX,int setY,int width, int height) {
this.width=width;
this.height=height;
this.setX=setX;
this.setY=setY;
setSize(width, height);
}
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.white);
double x = setX;
double y = setY;
double w = width;
double h = height;
RoundRectangle2D round=new RoundRectangle2D.Double(x, y, w, h, 80, 80);
g2.fill(round);
}
}
Once your window is created with custom background, Here we Create Header.
// for heading Layout
Font headingFont = new Font("Lucida",Font.BOLD,22);
Font textFont = new Font("Lucida",0,10);
Border borderline = BorderFactory.createLineBorder(Color.black);
heading = new JLabel("Room Vacant");
heading.setHorizontalAlignment(JLabel.CENTER);
heading.setVerticalAlignment(JLabel.CENTER);
heading.setBackground(Color.decode("#80c2b2"));
heading.setForeground(Color.black);
heading.setFont(headingFont);
heading.setBounds(0,panelHig/30, panelWid, panelHig/15);
panel.add(heading);
JSeparator jSeparator1 = new JSeparator();
jSeparator1.setBackground(Color.black);
jSeparator1.setAlignmentX(JSeparator.CENTER_ALIGNMENT);
jSeparator1.setBounds(20, 80, winWidth-winWidth/12, panelHig/13);
panel.add(jSeparator1);
We will create roompanel layout with some reduced dimensions and its UI.
TitledBorder roomtTittle = BorderFactory.createTitledBorder(borderline);
roomTittle.setTitleJustification(TitledBorder.LEFT);
roomTittle.setTitleFont(textFont);
roomTittle.setTitle("Search Room");
roomTittle.setTitleColor(Color.black);
roomPanel = new JPanel();
roomPanel.setBounds(20,panelHig*15/100, winWidth*57/100, panelHig*42/100); //265
roomPanel.setLayout(null);
roomPanel.setName("Search Room");
roomPanel.setBorder(flightTittle);
roomPanel.setBackground(Color.white);
panel.add(roomPanel);
headingFont = new Font("Lucida",Font.BOLD,16);
JLabel searchLabel = new JLabel("Search Room");
searchLabel.setAlignmentX(JLabel.LEFT);
searchLabel.setForeground(Color.black);
searchLabel.setFont(headingFont);
searchLabel.setBounds(20,panelHig*2/100, 150, panelHig*5/100);
roomPanel.add(searchLabel);
ImageIcon backround_img = new ImageIcon("images/ic_search.png");
Image img = backround_img.getImage();
Image temp_img = img.getScaledInstance(20, 20, Image.SCALE_SMOOTH);
backround_img = new ImageIcon(temp_img);
JLabel background = new JLabel("", backround_img, JLabel.CENTER);
background.setBounds(20,panelHig*6/100, 20, panelHig*3/100);
roomPanel.add(background);
JTextField roomSearch = new JTextField(15);
roomSearch.setBackground(Color.decode("#FFFFFF"));
roomSearch.setForeground(Color.black);
roomSearch.setBounds(40,panelHig*6/100, 150, 20);
roomPanel.add(roomSearch);
roomSearch.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
search(roomSearch.getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
search(roomSearch.getText());
}
@Override
public void changedUpdate(DocumentEvent e) {
search(roomSearch.getText());
}
public void search(String str) {
if (str.length() == 0) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(RowFilter.regexFilter(str));
}
}
});
room_table();
private void room_table() {
// TODO Auto-generated method stub
String[] columnNames = {"Room No", "Price"};
model = new DefaultTableModel();
sorter = new TableRowSorter<>(model);
model.setRowCount(0);
model.setColumnIdentifiers(columnNames);
roomTable = new JTable();
roomTable.setRowSorter(sorter);
roomTable.setBounds(20,panelHig*10/100, panelWid*40/100, panelHig*30/100);
roomPanel.add(roomTable);
roomTable.setModel(model);
JScrollPane scrollPane = new JScrollPane(roomTable);
scrollPane.setBounds(20,panelHig*10/100,panelWid*40/100, panelHig*30/100);
roomTable.setFillsViewportHeight(true);
roomPanel.add(scrollPane);
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
roomTable.getColumnModel().getColumn(0).setCellRenderer( centerRenderer );
roomTable.getColumnModel().getColumn(1).setCellRenderer( centerRenderer );
roomTable.getTableHeader().setFont(new Font("SansSerif", 1, 13));
roomTable.getTableHeader().setBackground(Color.decode("#4287f5"));
roomTable.getTableHeader().setForeground(Color.decode("#FFFFFF"));
roomTable.getColumnModel().getColumn(0).setPreferredWidth(30);
roomTable.getColumnModel().getColumn(1).setPreferredWidth(30);
roomTable.setRowHeight(30);
roomTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event) {
selected_room_number = roomTable.getValueAt(roomTable.getSelectedRow(),0).toString();
student_table_update(selected_room_number, roomTable.getValueAt(roomTable.getSelectedRow(),1).toString());
}
});
room_table_update();
}
Here Student layout and its UI:
// Student table Base panel
TitledBorder studentTittle = BorderFactory.createTitledBorder(borderline);
studentTittle.setTitleJustification(TitledBorder.LEFT);
studentTittle.setTitleFont(textFont);
studentTittle.setTitle("Search Student");
studentTittle.setTitleColor(Color.black);
studentPanel = new JPanel();
studentPanel.setLayout(null);
studentPanel.setBounds(20,panelHig*58/100, winWidth*57/100, panelHig*38/100); //265
studentPanel.setName("Alloted Student");
studentPanel.setBorder(studentTittle);
studentPanel.setBackground(Color.white);
panel.add(studentPanel);
student_table();
private void student_table() {
// TODO Auto-generated method stub
String[] columnNames = {"Student Id","Name","Contact No",
"Email Id","Address","Rent"};
mode2 = new DefaultTableModel();
mode2.setColumnIdentifiers(columnNames);
studentTable = new JTable();
studentTable.setBounds(20,panelHig*5/100, winWidth*54/100,panelHig*30/100);
studentPanel.add(studentTable);
studentTable.setModel(mode2);
JScrollPane scrollPane = new JScrollPane(studentTable);
scrollPane.setBounds(20,panelHig*5/100, winWidth*54/100,panelHig*30/100);
studentTable.setFillsViewportHeight(true);
studentPanel.add(scrollPane);
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
studentTable.getColumnModel().getColumn(0).setCellRenderer( centerRenderer );
studentTable.getColumnModel().getColumn(1).setCellRenderer( centerRenderer );
studentTable.getColumnModel().getColumn(2).setCellRenderer( centerRenderer );
studentTable.getColumnModel().getColumn(3).setCellRenderer( centerRenderer );
studentTable.getColumnModel().getColumn(4).setCellRenderer( centerRenderer );
studentTable.getColumnModel().getColumn(5).setCellRenderer( centerRenderer );
studentTable.getTableHeader().setFont(new Font("SansSerif", 1, 13));
studentTable.getTableHeader().setBackground(Color.decode("#4287f5"));
studentTable.getTableHeader().setForeground(Color.decode("#FFFFFF"));
studentTable.getColumnModel().getColumn(0).setPreferredWidth(30);
studentTable.getColumnModel().getColumn(5).setPreferredWidth(30);
studentTable.getColumnModel().getColumn(2).setPreferredWidth(40);
studentTable.setRowHeight(30);
studentTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent event) {
// do some actions here, for example
// print first column value from selected row
dft = (DefaultTableModel)selectedroomTable.getModel();
dft.setRowCount(0);
dft.getDataVector().removeAllElements();
dft.fireTableDataChanged();
Vector v2 = new Vector();
v2.add(cel1);
v2.add(cel2);
v2.add(cel3);
dft.addRow(v2);
}
});
}
Here is action layout and Its UI.
// Action table Base panel
TitledBorder actionTittle = BorderFactory.createTitledBorder(borderline);
actionTittle.setTitleJustification(TitledBorder.LEFT);
actionTittle.setTitleFont(textFont);
actionTittle.setTitle("Action");
actionTittle.setTitleColor(Color.black);
actionPanel = new JPanel();
actionPanel.setBorder(actionTittle);
actionPanel.setBounds(winWidth*60/100,panelHig*15/100, winWidth*33/100, panelHig*81/100);
actionPanel.setLayout(null);
actionPanel.setName("Action");
actionPanel.setBackground(Color.white);
panel.add(actionPanel);
JLabel room = new JLabel();
room.setText("Selected Student :");
room.setForeground(Color.black);
room.setFont(new Font("Lucida",Font.BOLD,14));
room.setSize(new Dimension(winWidth/3,winHeight/10));
room.setLocation(30, panelHig*3/100);
actionPanel.add(room);
selected_room_table();
private void selected_room_table() {
// TODO Auto-generated method stub
String[] columnNames = {"Student Id", "Name", "Rent" };
model3 = new DefaultTableModel();
model3.setColumnIdentifiers(columnNames);
selectedroomTable = new JTable();
selectedroomTable.setBounds((winWidth*33/100)/2-panelWid*15/100,panelHig*10/100, panelWid*30/100, panelHig*10/100);
actionPanel.add(selectedroomTable);
selectedroomTable.setModel(model3);
JScrollPane scrollPane = new JScrollPane(selectedroomTable);
scrollPane.setBounds((winWidth*33/100)/2-panelWid*15/100,panelHig*10/100, panelWid*30/100,panelHig*10/100);
selectedroomTable.setFillsViewportHeight(true);
actionPanel.add(scrollPane);
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
selectedroomTable.getColumnModel().getColumn(0).setCellRenderer( centerRenderer );
selectedroomTable.getColumnModel().getColumn(1).setCellRenderer( centerRenderer );
selectedroomTable.getColumnModel().getColumn(2).setCellRenderer( centerRenderer );
selectedroomTable.getTableHeader().setFont(new Font("SansSerif", 1, 13));
selectedroomTable.getTableHeader().setBackground(Color.decode("#4287f5"));
selectedroomTable.getTableHeader().setForeground(Color.decode("#FFFFFF"));
selectedroomTable.getColumnModel().getColumn(0).setPreferredWidth(30);
selectedroomTable.getColumnModel().getColumn(2).setPreferredWidth(30);
selectedroomTable.setRowHeight(30);
}
Now we add "PAYMENT" Button in action layout and its navigation logic for go to payment page.
JButton payButton = new JButton(new ImageIcon(((new ImageIcon("images/button32.png")).getImage()).getScaledInstance(200, 50, java.awt.Image.SCALE_SMOOTH)));
payButton.setText("Payment");
payButton.setContentAreaFilled(false);
payButton.setBorder(null);
payButton.setForeground(Color.white);
payButton.setHorizontalTextPosition(JButton.CENTER);
payButton.setVerticalTextPosition(JButton.CENTER);
payButton.setFont(new Font("Lucida",Font.PLAIN,16));
payButton.setBounds((winWidth*33/100)/2-100,panelHig*55/100, 200, 50);
actionPanel.add(payButton);
payButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
new Payment(frame);
}
});
Now we add "VACANT" Button in action layout and its logic for room vacant.
JButton addButton = new JButton(new ImageIcon(((new ImageIcon("images/button32.png")).getImage()).getScaledInstance(200, 50, java.awt.Image.SCALE_SMOOTH)));
addButton.setText("Vacant");
addButton.setContentAreaFilled(false);
addButton.setBorder(null);
addButton.setForeground(Color.white);
addButton.setHorizontalTextPosition(JButton.CENTER);
addButton.setVerticalTextPosition(JButton.CENTER);
addButton.setFont(new Font("Lucida",Font.PLAIN,16));
addButton.setBounds((winWidth*33/100)/2-100,panelHig*45/100, 200, 50);
actionPanel.add(addButton);
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if(is_amount_paid) {
String status = "vacant";
String room_no = selected_room_number;
Connection conn = SQLiteJDBCDriverConnection.connect1();
try {
int result = JOptionPane.showConfirmDialog(null, "Do you want to vacant the Room?");
if(result == JOptionPane.YES_OPTION) {
String query = "update room set status = ? where room_no = ?";
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString(1, status);
preparedStmt.setString(2, room_no);
preparedStmt.executeUpdate();
String sql = "DELETE FROM room_alloted WHERE room_number LIKE '%"+room_no+"%'";
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
sql = "DELETE FROM rent_payment WHERE room_number LIKE '%"+room_no+"%'";
stmt = conn.createStatement();
stmt.executeUpdate(sql);
query = "update student set room_alloted = ? where student_id = ?";
preparedStmt = conn.prepareStatement(query);
preparedStmt.setBoolean(1, false);
preparedStmt.setString(2, cel1);
preparedStmt.executeUpdate();
conn.close();
frame.dispose();
new Vacant(dashboardFrame);
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
System.out.println(selected_room_number+"------");
}
});
panel.revalidate();
panel.repaint();
Here is logic for fetch data for Room Table and update it.
private void room_table_update() {
int CC;
String status = "alloted";
Connection conn = SQLiteJDBCDriverConnection.connect1();
try {
PreparedStatement insert = conn.prepareStatement("select room_no, room_rent from room where status LIKE'%"+status+"%'");
ResultSet rs = insert.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
CC = rsmd.getColumnCount();
System.out.println();
dft0 = (DefaultTableModel)roomTable.getModel();
dft0.setRowCount(0);
dft0.getDataVector().removeAllElements();
dft0.fireTableDataChanged();
while(rs.next()) {
Vector v2 = new Vector();
for(int ii = 1; ii<=CC; ii++) {
v2.add(rs.getString("room_no"));
v2.add(rs.getString("room_rent"));
cel_room = rs.getString("room_no");
cel_rent = rs.getString("room_rent");
}
dft0.addRow(v2);
}
conn.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Here is logic dashboard visibility.
frame.getContentPane().setBackground(Color.gray);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
frame.dispose();
dashboardFrame.setVisible(true);
}
});
frame.setVisible(true);
At last we add logic to table rows change their position.
public void tableChanged(TableModelEvent e) {
// TODO Auto-generated method stub
int row = e.getFirstRow();
int column = e.getColumn();
TableModel model = (TableModel)e.getSource();
String columnName = model.getColumnName(column);
Object data = model.getValueAt(row, column);
System.out.println(columnName+data+"Wrong");
}
Programmer Mirta is for learning and training. Projects might be simple to improve learning. Projects are constantly reviewed to avoid errors, but we cannot assure full correctness of all content. While using Programmer Mitra, you agree to have read and accepted our terms of use, cookie and privacy policy.
Copyright 2021 by Programmer Mitra. All Rights Reserved.