title: make search result appear in the same page (Swing program)
body: <p>So, this is a program in swing for implementing a search functionality. It runs perfectly well. No problems there. My requirement is to make the search results appear beneath the same page. In this code, I have made the results to appear in a new Jframe that opens a new window. I basically don't want this. I want to make the search result appear in the same page. So, should I modify the code ? Any form of help is appreciated. :) Thanks ! </p>
  
  <h2>This is my code:-</h2>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  import java.io.File;
  import java.sql.*;
  import java.util.Vector;
  
  import javax.swing.*;
  import javax.swing.table.DefaultTableModel;
  
  public class r_search_1 extends JFrame implements ActionListener {
  
      JFrame frame1;
      JLabel l0, l1, l2;
      JComboBox c1;
      JButton b1;
      Connection con;
      ResultSet rs, rs1;
      Statement st, st1;
      PreparedStatement pst;
      String ids;
      static JTable table;
      String[] columnNames = {"SECTION NAME", "REPORT NAME", "CONTACT", "LINK"};
      String from;
      Vector v = new Vector();
  
      r_search_1() 
      {
          l0 = new JLabel("Fetching Search Results...");
          l0.setForeground(Color.blue);
          l0.setFont(new Font("Serif", Font.BOLD, 20));
          l1 = new JLabel("Search");
          b1 = new JButton("submit");
  
          l0.setBounds(100, 50, 350, 40);
          l1.setBounds(75, 110, 75, 20);
          b1.setBounds(150, 150, 150, 20);
          b1.addActionListener(this);
  
          setTitle("Search Executive Reports  ");
          setLayout(null);
          //setVisible(true);
          setSize(500, 500);
          setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  
          add(l0);
          add(l1);
          add(b1);
  
          try 
          {
  
              File dbFile = new File("executive_db.accdb");
              String path = dbFile.getAbsolutePath();
              con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ= " + path);
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              st = con.createStatement();
              rs = st.executeQuery("select index_name from Index1");
             while (rs.next())
             {
                  ids = rs.getString(1);
                  v.add(ids);
  
              }
              c1 = new JComboBox(v);
              c1.setEditable(true);c1.setSelectedItem("");
              c1.setBounds(150, 110, 150, 20);
  
              add(c1);
              st.close();
              rs.close();
          } catch (Exception e) {
          }
          setVisible(true);
      }
  
      public void actionPerformed(ActionEvent ae) {
          if (ae.getSource() == b1) {
              showTableData();
          }
       }
  
      public void showTableData()
      {
          frame1 = new JFrame("Database Search Result");
          frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
          frame1.setLayout(new BorderLayout());
          DefaultTableModel model = new DefaultTableModel();
          model.setColumnIdentifiers(columnNames);
          table = new JTable();
          table.setModel(model);
          table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
          table.setFillsViewportHeight(true);
          JScrollPane scroll = new JScrollPane(table);
          scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
          scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
          from = (String) c1.getSelectedItem();
  
          String section_name = "";
          String report_name = "";
          String contact_name = "";
          String link = "";
  
  
          try
          {
  
          pst = con.prepareStatement("select distinct Section.Section_Name,Report.Report_Name,Report.Link,Contact.Contact_Name "
                          + "FROM (( Section INNER JOIN Report ON Report.Section_ID=Section.Section_ID ) INNER JOIN Contact ON Contact.Contact_ID=Report.Contact_ID )  LEFT JOIN Metrics ON Metrics.Report_ID=Report.Report_ID  "
                          + " WHERE Section.Section_Name LIKE '%"+from+"%' OR Report.Report_Name LIKE '%"+from+"%' OR Metrics.Metric_Name LIKE '%"+from+"%' OR Contact.Contact_Name LIKE '%"+from+"%' ");
              ResultSet rs = pst.executeQuery();
              int i = 0;
              while (rs.next()) {
                  section_name = rs.getString("Section_Name");
                  report_name = rs.getString("Report_Name");
                  contact_name = rs.getString("Contact_Name");
                  link = rs.getString("Link");
                  model.addRow(new Object[]{section_name, report_name, contact_name, link});
                  i++;
              }
              if (i &lt; 1) {
                  JOptionPane.showMessageDialog(null, "No Record Found", "Error", JOptionPane.ERROR_MESSAGE);
              }
              if (i == 1) {
                  System.out.println(i + " Record Found");
              } else {
                  System.out.println(i + " Records Found");
              }
          } catch (Exception ex) {
              JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
          }
          frame1.add(scroll);
          frame1.setVisible(true);
          frame1.setSize(1000, 400);
      }
  
      public static void main(String args[]) {
          new r_search_1();
      }
  }
  </code></pre>