title: Swing how to close JPanel programmatically
body: <p>My main class extends JPanel and I create a table  and a button on this panel.Now I want to close this panel when the user press it.On the internet closing examples are about JFrame.Is there solution for JPanel?</p>
  
  <ul>
  <li>There is a panel</li>
  <li>On Panel there is a table and a button</li>
  <li>I add an action listener to the button</li>
  <li>I want to close panel if user press button</li>
  <li><p>This is my code now I want when the user press the btnDelete then it close the panel</p>
  
  <p>public class ListUsers extends JPanel {</p>
  
  <p>ResultSet rs;
  ClientDAO dao;
  JScrollPane scrollPane;
  JTable table;
  Object columnId;</p>
  
  <p>public ListUsers() throws SQLException {</p>
  
  <pre><code>dao = new ClientDAO();
  rs=dao.getUsers();
  ResultSetMetaData md = rs.getMetaData();  
  int columnCount = md.getColumnCount();  
  
  Vector&lt;String&gt; columns = new Vector(columnCount);  
  
  //store column names  
  for(int i=1; i&lt;=columnCount; i++)  
      columns.add(md.getColumnName(i));  
  
  Vector data = new Vector();  
  Vector row;  
  
  //store row data  
  while(rs.next())  
  {  
      row = new Vector(columnCount);  
      for(int i=1; i&lt;=columnCount; i++)  
      {  
          row.add(rs.getString(i));  
      }  
      data.add(row);  
  }  
  
  
  
  
  
  table = new JTable(data, columns);  
  table.setPreferredScrollableViewportSize(new Dimension(500, 70));  
  table.setFillsViewportHeight(true);  
  table.setVisible(true);  
  table.validate();
  table.setEnabled(true);
  add(table);
  
  
  
  
  table.addMouseListener(new MouseAdapter() {
         public void mouseClicked(MouseEvent e) {
  
  
  
  
  
             final JDialog dialog = new JDialog();
             dialog.setSize(300, 200);
             dialog.setLayout(null);
  
  
             columnId = table.getValueAt(table.getSelectedRow(),0);
  
             Integer no = new Integer(columnId.toString());
             final int i =no.intValue();
  
             String columnNo =columnId.toString();
             String name = table.getValueAt(table.getSelectedRow(),1).toString();
             String surname = table.getValueAt(table.getSelectedRow(),2).toString();
             String gender = table.getValueAt(table.getSelectedRow(),3).toString();
  
  
             String labelText ="&lt;html&gt;Name :&lt;b&gt;"+name+"&lt;/b&gt;&lt;br&gt;Surname :&lt;b&gt;"+surname+"&lt;/b&gt;&lt;br&gt;Gender :&lt;b&gt;"+gender+"&lt;/b&gt;&lt;/html&gt;";
             JLabel label=new JLabel(labelText);
             label.setVisible(true);
             label.setBounds(10,  10,300, 100);
             dialog.add(label);
  
  
  
             JButton btnUpdate= new JButton("Update");
             btnUpdate.setVisible(true);
             btnUpdate.setBounds(10,100,100,35);
  
  
             JButton    btnDelete= new JButton("Delete");
             btnDelete.setVisible(true);
             btnDelete.setBounds(150,100,100,35);
  
  
  
  
             dialog.add(btnDelete);
             dialog.add(btnUpdate);
  
  
             btnUpdate.addActionListener(new ActionListener() {
  
              @Override
              public void actionPerformed(ActionEvent e) {
                  dialog.setVisible(false);
  
              }
          });
  
  
             btnDelete.addActionListener(new ActionListener() {
  
              @Override
              public void actionPerformed(ActionEvent e) {
  
  
  
  
                  try {
                      dao.deleteUser(i);
                  } catch (SQLException e1) {
                      // TODO Auto-generated catch block
                      e1.printStackTrace();
                  }
                  dialog.setVisible(false);
  
  
                  setVisible(false);
                  System.exit(0);
  
  
  
              }
          });
  
             dialog.setVisible(true);
  </code></pre></li>
  </ul>