Java JTable中JCheckbox的不稳定程序

Java JTable中JCheckbox的不稳定程序,java,swing,nullpointerexception,jtable,jcheckbox,Java,Swing,Nullpointerexception,Jtable,Jcheckbox,我有一个GUI,它在JTable中有JCheckbox,在那里,借助vector用数据库填充表中的数据 我提供以下代码,用于从数据库中提取数据: try { PreparedStatement pre = con.prepareStatement("select * from ProductInformation where CustomerName='"+cust_name+"'"); Vector<Vector<String>> histor

我有一个GUI,它在
JTable
中有
JCheckbox
,在那里,借助vector用数据库填充表中的数据

我提供以下代码,用于从数据库中提取数据:

 try {
  PreparedStatement pre = con.prepareStatement("select * from ProductInformation where     CustomerName='"+cust_name+"'");

     Vector<Vector<String>> historyVector = new Vector<Vector<String>>();
             rs = pre.executeQuery();

   while(rs.next())
    {
    Vector<String> history = new Vector<String>();
    serial_no=rs.getString("SerialNumber");

    history.add(serial_no);
    history.add(rs.getString("Model"));
    history.add(rs.getString("InvoiceNumber"));
    history.add(rs.getString("Location"));

         historyVector.add(history);
      }
            data=historyVector;

            header = new Vector<String>();

    header.add("Serial No"); 
    header.add("Model");
    header.add("Invoice no"); 
    header.add("Location");
    header.add("ASC");
    header.add("AMC");

       amcAscResult();
    mainframe.add(amcascresult);
    mainframe.remove(amc);
    mainframe.validate();
    mainframe.repaint();
    mainframe.pack();
        }
        catch(Exception e){
            System.err.println(e);
        }
用于获取
JCheckbox
的值

 for (int i = 0; i <amcasc_table.getRowCount(); i++) {
 boolean isChecked = (Boolean) amcasc_table.getValueAt(i, 4);

 if (isChecked) {
    //get the values of the columns you need.

 String value = (String) amcasc_table.getValueAt(i, 0);

 System.out.println(value);

}
}

for(int i=0;i在您不完整示例的700多行中,有几个问题比较突出:

  • 这个词有时表示不正确的同步;请验证所有Swing GUI对象是否仅在上构造和操作

  • 确保您的
    TableModel
    为复选框列返回
    getColumnClass()
    中的
    Boolean.class
    ,而不仅仅是通过
    default
    ;可以看到并查看使用
    DefaultTableModel
    的完整示例

  • 不要更换组件,例如,在您的第一个片段中的
    amc
    ,在您的杰作中的
    amc
    ;更新所包含组件的相应模型

  • 独立于您的程序验证正确的查询结果;
    select*
    在模式发生变化时尤其麻烦


    • 我发现问题出在

      return Boolean.class;
      
      如果由于复选框是包装类而未选中,则返回null

      我用。。 如果返回null,我将布尔变量初始化为false


      这就解决了问题。:)

      要更快地获得更好的帮助,请发布一个。尽管听起来很可疑,代码试图从EDT外部更新GUI。另外1)对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程!2) 源代码中只有一行空白就足够了。3) 编辑问题时请小心,始终使用问题下方的链接。它保留了其他人的编辑,这样做。@AndrewThompson我为我的问题“SSCCE
      private void amc\u search\u buttonActionPerformed”(
      )添加了SSCCE。一个SSCCE是一个包含导入、类名和
      main(String[])
      方法的源文件。但是@AndrewThompson我担心大约有1500行代码。。
           import java.awt.HeadlessException;
           import java.awt.event.ActionEvent;
           import java.awt.event.KeyEvent;
           import java.sql.*;
           import java.text.DateFormat;
           import java.text.Format;
           import java.text.ParseException;
           import java.text.SimpleDateFormat;
           import java.util.Date;
           import java.util.Properties;
           import java.util.Vector;
           import javax.mail.*;
           import javax.mail.internet.InternetAddress;
           import javax.mail.internet.MimeMessage;
           import javax.swing.*;
      
      
      public class Combined {
      Session session;
      JFrame mainframe,mailframe;
      JPanel firstpane, newsales, confirmnewsales, checkserialno, producthistory, newcomplaint, newcomplaintentry;
      JPanel  confirmcomplaint,sendmail,generatereport,generatereportresult,amc,amcascresult,amcascconfirm;
      JMenuBar menuBar;
      JMenu menu;
      JMenuItem menuItem;
      JMenu submenu;
      JRadioButtonMenuItem rbMenuItem;
      JCheckBoxMenuItem cbMenuItem;
      Connection con,con1;
      Statement st,st1;
      DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
      Format mmFormat = new SimpleDateFormat("MM");
      DateFormat yyFormat = new SimpleDateFormat("yy");
      DateFormat ddFormat = new SimpleDateFormat("dd");
      String invoice_no;
      String serial_no;
      String model;
      String cust_name;
      String cust_location;
      String amc_status;
      Date date_of_purchase;
      Date amc_start_date;
      Date amc_end_date;
      String amcend_date;
      String amcstart_date;
      ButtonModel amc_status_model;
      String query;
      ResultSet rs,rs1;
      Date dateofpurchase;
      String date_ofpurchase;
      String query1;
      String eng_name;
      String problem_description;
      String contact_person;
      String contact_no;
      String calldate;
      String callmonth;
      String callyear;
      String callno;
      int inccallno;
      String lastcallno;
      String query3, query4, query5;
      String lastcalldate;
      String sinccallno;
      String db;
      String toaddress;
      String subject;
      String messagebody;
      String warrantystatus;
      Vector<Vector<String>> data; 
      Vector<String> header; 
      String callstatus;
      int no_of_calls = 0;
      
      public Combined() {
          connect();
          framegen();
      
      }
      
      private void framegen() {
          mainframe = new JFrame("Product Maintenance and Support Software");
          //Create the menu bar.
          menuBar = new JMenuBar();
      
          //Build the first menu.
          menu = new JMenu("A Menu");
          menu.setMnemonic(KeyEvent.VK_A);
          menu.getAccessibleContext().setAccessibleDescription(
                  "The only menu in this program that has menu items");
          menuBar.add(menu);
      
          //a group of JMenuItems
          menuItem = new JMenuItem("A text-only menu item",
                  KeyEvent.VK_T);
          menuItem.setAccelerator(KeyStroke.getKeyStroke(
                  KeyEvent.VK_1, ActionEvent.ALT_MASK));
          menuItem.getAccessibleContext().setAccessibleDescription(
                  "This doesn't really do anything");
          menu.add(menuItem);
      
          menuItem = new JMenuItem("Both text and icon",
                  new ImageIcon("images/middle.gif"));
          menuItem.setMnemonic(KeyEvent.VK_B);
          menu.add(menuItem);
      
          menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
          menuItem.setMnemonic(KeyEvent.VK_D);
          menu.add(menuItem);
      
           //a group of radio button menu items
          menu.addSeparator();
          ButtonGroup group = new ButtonGroup();
          rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
          rbMenuItem.setSelected(true);
          rbMenuItem.setMnemonic(KeyEvent.VK_R);
          group.add(rbMenuItem);
          menu.add(rbMenuItem);
      
          rbMenuItem = new JRadioButtonMenuItem("Another one");
          rbMenuItem.setMnemonic(KeyEvent.VK_O);
          group.add(rbMenuItem);
          menu.add(rbMenuItem);
      
          //a group of check box menu items
          menu.addSeparator();
          cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
          cbMenuItem.setMnemonic(KeyEvent.VK_C);
          menu.add(cbMenuItem);
      
          cbMenuItem = new JCheckBoxMenuItem("Another one");
          cbMenuItem.setMnemonic(KeyEvent.VK_H);
          menu.add(cbMenuItem);
      
          //a submenu
          menu.addSeparator();
          submenu = new JMenu("A submenu");
          submenu.setMnemonic(KeyEvent.VK_S);
      
          menuItem = new JMenuItem("An item in the submenu");
          menuItem.setAccelerator(KeyStroke.getKeyStroke(
                  KeyEvent.VK_2, ActionEvent.ALT_MASK));
          submenu.add(menuItem);
      
          menuItem = new JMenuItem("Another item");
          submenu.add(menuItem);
          menu.add(submenu);
      
         //Build second menu in the menu bar.
          menu = new JMenu("Another Menu");
          menu.setMnemonic(KeyEvent.VK_N);
          menu.getAccessibleContext().setAccessibleDescription(
                  "This menu does nothing");
          menuBar.add(menu);
      
          mainframe.setJMenuBar(menuBar);
          firstpane();
          mainframe.add(firstpane);
          mainframe.pack();
          mainframe.setVisible(true);
          mainframe.setDefaultCloseOperation(3);
          mainframe.setResizable(false);
      
      }
      
      /**
       * @param args the command line arguments
       */
      public static void main(String[] args) {
          // TODO code application logic here
          Combined com = new Combined();
      
      }
      
      private void connect() {
          try {
              String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
              Class.forName(driver);
      
              String db1 = "jdbc:odbc:solaris";
              con = DriverManager.getConnection(db1);
              st = con.createStatement();
          } catch (ClassNotFoundException | SQLException ex) {
              System.out.println("database connection failed");
          }
      }
      
      
      
      private void firstpane() {
          firstpane = new JPanel();
      
          addnewsales_button = new javax.swing.JButton();
          newcomplaint_button = new javax.swing.JButton();
          calllist_button = new javax.swing.JButton();
          generatereport_button = new javax.swing.JButton();
          serialnocheck_button = new javax.swing.JButton();
          solaris_logo = new javax.swing.JLabel();
          Support_label = new javax.swing.JLabel();
          putAMC_button = new javax.swing.JButton();
      
          firstpane.setBackground(new java.awt.Color(255, 255, 255));
      
          addnewsales_button.setText("Add New Sales Entry");
      
          addnewsales_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                 // addnewsales_buttonActionPerformed(evt);
              }
          });
      
          newcomplaint_button.setText("New Complaint");
          newcomplaint_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                 // newcomplaint_buttonActionPerformed(evt);
              }
          });
      
          calllist_button.setText("Call list");
          calllist_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                 // calllist_buttonActionPerformed(evt);
              }
          });
      
          generatereport_button.setText("Generate Report");
          generatereport_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  //generatereport_buttonActionPerformed(evt);
              }
          });
      
          serialnocheck_button.setText("Serial Number Check");
          serialnocheck_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                 // serialnocheck_buttonActionPerformed(evt);
              }
          });
      
          solaris_logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/combined/image/Solaris_logo.jpg"))); // NOI18N
      
          Support_label.setText("Support Section");
      
          putAMC_button.setText("Put AMC");
          putAMC_button.addActionListener(new java.awt.event.ActionListener() {
      
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  putAMC_buttonActionPerformed(evt);
              }
          });
      
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(firstpane);
          firstpane.setLayout(layout);
          layout.setHorizontalGroup(
                  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(calllist_button).addGap(41, 41, 41).addComponent(putAMC_button).addGap(28, 28, 28).addComponent(generatereport_button).addGap(74, 74, 74)).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(solaris_logo).addGap(132, 132, 132)))).addGroup(layout.createSequentialGroup().addGap(20, 20, 20).addComponent(addnewsales_button).addGap(44, 44, 44).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(Support_label, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap()).addGroup(layout.createSequentialGroup().addComponent(serialnocheck_button).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 43, Short.MAX_VALUE).addComponent(newcomplaint_button).addGap(23, 23, 23)))));
          layout.setVerticalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(32, 32, 32).addComponent(solaris_logo, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(Support_label, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 72, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(addnewsales_button).addComponent(serialnocheck_button).addComponent(newcomplaint_button)).addGap(28, 28, 28).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(calllist_button).addComponent(generatereport_button).addComponent(putAMC_button)).addGap(34, 34, 34)));
      
      }
      
      
      private void putAMC_buttonActionPerformed(java.awt.event.ActionEvent evt) {
          // TODO add your handling code here:
      
          amc();
          mainframe.add(amc);
          mainframe.remove(firstpane);
          mainframe.validate();
          mainframe.repaint();
          mainframe.pack();
      }
      
      private void amc() {
      
          amc=new JPanel();
          custname_label = new javax.swing.JLabel();
          custname_txtbox = new javax.swing.JTextField();
          amc_search_button = new javax.swing.JButton();
      
          amc.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "AMC Sign up", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(0, 0, 0)));
      
          custname_label.setText("Enter the Customer Name");
      
          amc_search_button.setText("Search");
          amc_search_button.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  amc_search_buttonActionPerformed(evt);
              }
          });
      
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(amc);
          amc.setLayout(layout);
          layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addComponent(custname_label)
                  .addGap(18, 18, 18)
                  .addComponent(custname_txtbox, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addGap(0, 46, Short.MAX_VALUE))
              .addGroup(layout.createSequentialGroup()
                  .addGap(116, 116, 116)
                  .addComponent(amc_search_button)
                  .addContainerGap())
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addGap(46, 46, 46)
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(custname_label)
                      .addComponent(custname_txtbox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addGap(51, 51, 51)
                  .addComponent(amc_search_button)
                  .addContainerGap(136, Short.MAX_VALUE))
          );
      }
      
      private void amc_search_buttonActionPerformed(java.awt.event.ActionEvent evt) {
          // TODO add your handling code here:
          cust_name=custname_txtbox.getText().trim();
      
             try {
                  PreparedStatement pre = con.prepareStatement("select * from   ProductInformation where CustomerName='"+cust_name+"'");
      
                  Vector<Vector<String>> historyVector = new Vector<Vector<String>>();
                   rs = pre.executeQuery();
      
      while(rs.next())
      {
       Vector<String> history = new Vector<String>();
       serial_no=rs.getString("SerialNumber");
       System.out.println("here");//Empid
       history.add(serial_no);
       history.add(rs.getString("Model"));
       history.add(rs.getString("InvoiceNumber"));
       history.add(rs.getString("Location"));
      
      
      
           historyVector.add(history);
         }
      
                  data=historyVector;
      
                  header = new Vector<String>();
          header.add("Serial No"); 
          header.add("Model");
          header.add("Invoice no"); 
          header.add("Location");
          header.add("ASC");
          header.add("AMC");
      
      
      
      
             amcAscResult();
          mainframe.add(amcascresult);
          mainframe.remove(amc);
          mainframe.validate();
          mainframe.repaint();
          mainframe.pack();
              }
              catch(Exception e){
                  System.err.println(e);
              }
      
      
      }
      
      private void amcAscResult() {
          amcascresult=new JPanel();
          custname_label = new javax.swing.JLabel();
          custname_var_label = new javax.swing.JLabel();
          location_label = new javax.swing.JLabel();
          custlocation_var_label = new javax.swing.JLabel();
          jScrollPane1 = new javax.swing.JScrollPane();
          amcasc_table = new javax.swing.JTable();
          putamcasc_button = new javax.swing.JButton();
      
          amcascresult.setBorder(javax.swing.BorderFactory.createTitledBorder("Put AMC"));
      
          custname_label.setText("Customer Name :");
      
          custname_var_label.setText(cust_name);
      
          location_label.setText("Location :");
      
          custlocation_var_label.setText("<location>");
      
          amcasc_table.setModel(new javax.swing.table.DefaultTableModel(
              data,header
          ) {
              boolean[] canEdit = new boolean [] {
                  false, false, false, true, true
              };
               private static final long serialVersionUID = 1L;
      
              /*@Override
              public Class getColumnClass(int column) {
              return getValueAt(0, column).getClass();
              }*/
              @Override
              public Class getColumnClass(int column) {
                  switch (column) {
                      case 0:
                          return String.class;
                      case 1:
                          return String.class;
                      case 2:
                          return String.class;
                      case 3:
                          return String.class;
                      default:
                          return Boolean.class;
                  }
              }
      
              public boolean isCellEditable(int rowIndex, int columnIndex) {
                  return canEdit [columnIndex];
              }
          });
          jScrollPane1.setViewportView(amcasc_table);
      
          putamcasc_button.setText("Put AMC/ASC");
          putamcasc_button.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  putamcasc_buttonActionPerformed(evt);
              }
          });
      
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(amcascresult);
          amcascresult.setLayout(layout);
          layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                      .addComponent(putamcasc_button)
                      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                          .addGroup(layout.createSequentialGroup()
                              .addComponent(custname_label)
                              .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                              .addComponent(custname_var_label)
                              .addGap(18, 18, 18)
                              .addComponent(location_label)
                              .addGap(18, 18, 18)
                              .addComponent(custlocation_var_label))
                          .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)))
                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(custname_label)
                      .addComponent(custname_var_label)
                      .addComponent(location_label)
                      .addComponent(custlocation_var_label))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                  .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
                  .addComponent(putamcasc_button))
          );
      }
      
      private void putamcasc_buttonActionPerformed(java.awt.event.ActionEvent evt) {
          // TODO add your handling code here:
          for (int i = 0; i <amcasc_table.getRowCount(); i++) {
       boolean isChecked = (Boolean) amcasc_table.getValueAt(i, 4);
      
       if (isChecked) {
          //get the values of the columns you need.
      
       String value = (String) amcasc_table.getValueAt(i, 0);
      
       System.out.println(value);
      
        }
      }
          amcAscConfirm();
          mainframe.add(amcascconfirm);
          mainframe.remove(amcascresult);
          mainframe.validate();
          mainframe.repaint();
          mainframe.pack();
      }
      
      
      private void amcAscConfirm() {
          amcascconfirm=new JPanel();
           confirm_label = new javax.swing.JLabel();
          finish_button = new javax.swing.JButton();
      
          amcascconfirm.setBorder(javax.swing.BorderFactory.createTitledBorder("Confirmation   of AMC/ASC"));
      
          confirm_label.setText("AMC/ASC has been availed for the machines selected");
      
          finish_button.setText("Finish");
          finish_button.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  finish_button1ActionPerformed(evt);
              }
          });
      
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(amcascconfirm);
          amcascconfirm.setLayout(layout);
          layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(layout.createSequentialGroup()
                          .addGap(73, 73, 73)
                          .addComponent(confirm_label)
                          .addGap(0, 95, Short.MAX_VALUE))
                      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,   layout.createSequentialGroup()
                          .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addComponent(finish_button)))
                  .addContainerGap())
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addGap(59, 59, 59)
                  .addComponent(confirm_label)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 169, Short.MAX_VALUE)
                  .addComponent(finish_button)
                  .addContainerGap())
          );
      }
      
       private void finish_button1ActionPerformed(java.awt.event.ActionEvent evt) {
          // TODO add your handling code here:
      
           mainframe.add(firstpane);
           mainframe.remove(amcascconfirm);
           mainframe.validate();
           mainframe.repaint();
           mainframe.pack();
      }
      
      private javax.swing.JLabel confirm_label;
      private javax.swing.JButton finish_button;
      private javax.swing.JTable amcasc_table;
      private javax.swing.JLabel custlocation_var_label;
      private javax.swing.JLabel custname_label;
      private javax.swing.JLabel custname_var_label;
      private javax.swing.JScrollPane jScrollPane1;
      private javax.swing.JLabel location_label;
      private javax.swing.JButton putamcasc_button;
       private javax.swing.JButton amc_search_button;
      private javax.swing.JTextField custname_txtbox;
      
      private javax.swing.JLabel Support_label;
      private javax.swing.JButton addnewsales_button;
      private javax.swing.JButton calllist_button;
      private javax.swing.JButton generatereport_button;
      private javax.swing.JButton newcomplaint_button;
      private javax.swing.JButton putAMC_button;
      private javax.swing.JButton serialnocheck_button;
      private javax.swing.JLabel solaris_logo;
       }
      
      return Boolean.class;