Booked Flight

Booked Flight

Above UI we are going to create by Awt for Booked Flight Window in our Flight Booking System desktop application. For that first we create a window and configure its title, size and color. Here we are creating a window at Top Level so we can add this window at the top of any other window.

    
		bookedFrame = new JFrame();
		Utils.centeredFrame(bookedFrame, windowWidth, windowHeight, "Search Booked Ticket");
		bookedFrame.setResizable(false);
		
		Container frameContainer = bookedFrame.getContentPane();
		frameContainer.setBackground(Color.gray);

		// Changeable According to What size of screen You Want?
		int containerWidth = windowWidth*94/100;
		int containerHeight = windowHeight*90/100;
		
		int panelWidth = containerWidth*98/100;
		int panelHeight = containerHeight*96/100;
		int posX = windowWidth / 2 - panelWidth / 2 ;
		int posY = windowHeight / 2 - panelHeight / 2 - frameControllerSize / 2;

		// frame without control options
		panel = new JPanel(); 
		panel.setLayout(null);//new BorderLayout()); 
		//panel.setOpaque(false);
		panel.setBackground(Color.decode("#FFFFFF")); 
		panel.setSize(new Dimension(panelWidth,panelHeight)); 
		panel.setLocation(posX, posY);
		frameContainer.add(panel);
		
		// for Rounded Background
		posX = windowWidth / 2 - containerWidth / 2 ;
		posY = windowHeight / 2 - containerHeight / 2 - frameControllerSize / 2;
		JComponent jcomponent = new RoundedBackground(posX, posY, containerWidth, containerHeight);
		jcomponent.setLayout(null);
		frameContainer.add(jcomponent, BorderLayout.CENTER);
		
    

Here we create a Label for our heading.

    
		// for heading Layout
		posY = panelHeight * 2/100;
		Font headingFont = new Font("Serif", Font.PLAIN, 22);
		// header
		Border borderline = BorderFactory.createLineBorder(Color.black);
				
		JLabel heading_text = new JLabel("Search Booked Ticket");
		heading_text.setHorizontalAlignment(JLabel.CENTER);
		heading_text.setVerticalAlignment(JLabel.CENTER);
		heading_text.setBackground(Color.decode("#80c2b2"));
		heading_text.setForeground(Color.black);
		heading_text.setFont(headingFont);
		heading_text.setBounds(0,0, panelWidth, panelHeight / 15);
		panel.add(heading_text);
				
		panel.add(Utils.getSeparator(0, panelHeight / 13, panelWidth, 5,"000000"));			
			

	

Here we create booked base JPanel and search field and its UI.

    

		Font textFont = new Font("Serif",Font.BOLD,12);
		int bookedPanelWidth = panelWidth*96/100;
		int bookedPanelHeight = panelHeight*86/100;
	    bookedPanel = new JPanel();
	    bookedPanel.setLayout(new FlowLayout());
	    bookedPanel.setLayout(null);
	    bookedPanel.setBounds(panelWidth*2/100,panelHeight*10/100, bookedPanelWidth, bookedPanelHeight);
	    bookedPanel.setBorder(Utils.getTitledBorder(10, "Search"));
	    panel.add(bookedPanel);
	    
	    headingFont = new Font("Serif",Font.BOLD,16);
	    JLabel booked_search_L = new JLabel("Search Flight");
	    booked_search_L.setAlignmentX(JLabel.LEFT);
	    //searchLabel.setBackground(Color.decode("#80c2b2"));
	    booked_search_L.setForeground(Color.black);
	    booked_search_L.setFont(headingFont);
	    booked_search_L.setBounds(bookedPanelWidth*2/100,20, 200, 30);
	    bookedPanel.add(booked_search_L);
	    
	    
	    
	    ImageIcon backround_img1 = new ImageIcon("images/ic_search.png");
		Image img1 = backround_img1.getImage();
		Image temp_img1 = img1.getScaledInstance(20, 20, Image.SCALE_SMOOTH);
		backround_img1 = new ImageIcon(temp_img1);
		JLabel background1 = new JLabel("", backround_img1, JLabel.CENTER);
		background1.setBounds(bookedPanelWidth*2/100,50, 20, 20);
		bookedPanel.add(background1);
	    
	    JTextField bookedSearch = new JTextField();
	    bookedSearch.setBackground(Color.decode("#FFFFFF"));
	    bookedSearch.setForeground(Color.black);
	    bookedSearch.setBounds(bookedPanelWidth*4/100,50, 150, 20);
	    bookedSearch.setOpaque(false);
	    bookedSearch.setBorder(BorderFactory.createLineBorder(Color.white, 0));
	    bookedSearch.setBackground(null);
	    bookedPanel.add(bookedSearch);
	    bookedSearch.getDocument().addDocumentListener(new DocumentListener() {
	         @Override
	         public void insertUpdate(DocumentEvent e) {
	            search(bookedSearch.getText());
	         }
	         @Override
	         public void removeUpdate(DocumentEvent e) {
	            search(bookedSearch.getText());
	         }
	         @Override
	         public void changedUpdate(DocumentEvent e) {
	            search(bookedSearch.getText());
	         }
	         public void search(String str) {
	            if (str.length() == 0) {
	               sorter2.setRowFilter(null);
	            } else {
	               sorter2.setRowFilter(RowFilter.regexFilter(str));
	            }
	         }
	      });
	    
	    bookedPanel.add(Utils.getSeparator(bookedPanelWidth*2/100, 70, 170, 2,"000000"));		    
	
		booked_flight_table(bookedPanelWidth, bookedPanelHeight);

		bookedFrame.addWindowListener(new WindowAdapter(){  
            public void windowClosing(WindowEvent e) {  
            	bookedFrame.dispose();
            	dashboardFrame.setVisible(true);
            }  
        });  
		
		bookedFrame.setVisible(true);
		
         

Here we define JTabel functions.

    

		"public class BookedFlight implements TableModelListener {"

		@Override
		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");
	}


	private void flight_table_update() {		
		
		
		
		
		conn = SqliteConnection.ConnectDb();
		try {
			insert = conn.prepareStatement("SELECT * FROM booking");
			ResultSet rs = insert.executeQuery();
			rs.getString("flight_no");
			
			DefaultTableModel dft = (DefaultTableModel)flightTable.getModel();
			dft.setRowCount(0);
			
			
			while(rs.next()) {
				
				insert = conn.prepareStatement("SELECT flight_name, route, departure_timing, arrival_timing FROM flight_detail where flight_no IS ?");
				insert.setString(1, rs.getString("flight_no"));
				ResultSet rs2 = insert.executeQuery();
				
				System.out.println(rs2.getString("flight_name"));
				
				insert = conn.prepareStatement("SELECT passenger_name, contact_number FROM passenger_detail where passenger_id IS ?");
				insert.setString(1, rs.getString("passenger_id"));
				ResultSet rs3 = insert.executeQuery();
				
				
			
				Vector v2 = new Vector();
				v2.add(rs.getString("booking_id"));
				v2.add(rs2.getString("flight_name"));
				v2.add(rs2.getString("route"));
				v2.add(rs2.getString("departure_timing"));
				v2.add(rs2.getString("arrival_timing"));
				v2.add(rs3.getString("passenger_name"));
				v2.add(rs3.getString("contact_number"));
				v2.add(rs.getString("booking_date"));

				dft.addRow(v2);

				
			}
		
			conn.close();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
		
	
	private void booked_flight_table(int width, int height) {		
		
		// TODO Auto-generated method stub
		String[] columnNames = {"TB Id",
                "Flight Name",
                "Flight Route",
                "Departure Time",
                "Arrival Time",
                "Passenger Name",
                "Contact",
                "Booking Date"
                };
		
		DefaultTableModel model1 = new DefaultTableModel();
		sorter2 = new TableRowSorter<>(model1);

        model1.setColumnIdentifiers(columnNames); 
		
        flightTable = new JTable(){
			public boolean isCellEditable(int row, int column) {                
                return false;               
			};
		};
        flightTable.setBounds(width*2/100,height*17/100, width*96/100,height*80/100);
        flightTable.setRowSorter(sorter2);
		//table.setEnabled(true);
		bookedPanel.add(flightTable);
		flightTable.setModel(model1);

		JScrollPane scrollPane1 = new JScrollPane(flightTable);
		scrollPane1.setBounds(width*2/100,height*17/100, width*96/100,height*80/100);
		flightTable.setFillsViewportHeight(true);
		bookedPanel.add(scrollPane1);
		
		DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
		centerRenderer.setHorizontalAlignment( JLabel.CENTER );
		flightTable.getColumnModel().getColumn(0).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(1).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(2).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(3).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(4).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(5).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(6).setCellRenderer( centerRenderer );
		flightTable.getColumnModel().getColumn(7).setCellRenderer( centerRenderer );

	
		flightTable.getTableHeader().setFont(new Font("SansSerif", 1, 13));
		flightTable.getTableHeader().setBackground(Color.decode("#f2410a"));
		flightTable.getTableHeader().setForeground(Color.decode("#FFFFFF"));
		flightTable.getTableHeader().setPreferredSize(new Dimension(760, 35));
		flightTable.setRowHeight(25);
		flightTable.getColumnModel().getColumn(0).setPreferredWidth(30);
		flightTable.getColumnModel().getColumn(2).setPreferredWidth(100);
		flightTable.getColumnModel().getColumn(5).setPreferredWidth(100);

		
		flightTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
	        public void valueChanged(ListSelectionEvent event) {
	            // do some actions here, for example
	            // print first column value from selected row
	            System.out.println(flightTable.getSelectedRow());
	           
	            
	           
	        }
	    });

		flight_table_update();
	
	}
	


     

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.