2015-08-04 2 views
-1

У меня есть это действие для JButton в моем JDialog, что я хочу, чтобы он добавлял строки каждый раз, когда я нажимаю на него. Но он не работает так, как я хочу, и он не добавляет строки в мою таблицу просмотра.JButton не работает как ожидалось

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    int activity_number = -1; 
    for (HashMap.Entry<Integer ,String> entry : ad_activity_table_hashmap.entrySet()){ 
     if (entry.getValue() == jComboBox2.getSelectedItem()){ 
      activity_number = entry.getKey(); 
     } 
    } 
    if (jTextField17.getText().equals("") || jTextField19.getText().equals("")){ 
     JOptionPane.showConfirmDialog(null, "لطفا همه فيلد ها را پر كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
    } 
    else if (!FinancialDocumentsJFrame.checkDocumentAmountText(jTextField17.getText())){ 
     JOptionPane.showConfirmDialog(null, "ورودي مبلغ فعاليت نامعتبر است لطفا دوباره بررسي كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
    } 
    else if (!FinancialDocumentsJFrame.checkNumberText(jTextField19.getText())){ 
     JOptionPane.showConfirmDialog(null, "ورودي شماره قرارداد نامعتبر است لطفا دوباره بررسي كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
    } 
    else if (jComboBox2.getSelectedIndex()==-1){ 
     JOptionPane.showConfirmDialog(null, "شرح فعاليت انتخاب نشده است لطفا دوباره بررسي كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
    } 
    else if (!activity_hashmap.isEmpty()){ 
     if (activity_number == -1){ 
      System.out.println("Error in Activity Number"); 
      JOptionPane.showConfirmDialog(null, "اشكال در شماره فعاليت لطفا دوباره تلاش كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
     } 
     else { 
      boolean exists = activity_hashmap.containsKey(activity_number); 
      if (exists){ 
       JOptionPane.showConfirmDialog(null, "ورودي موجود است لطفا دوباره بررسي كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
      } 
     } 

    } 
    else { 

     int activity_amount = Integer.parseUnsignedInt(jTextField17.getText()); 
     int activity_contract_number = Integer.parseUnsignedInt(jTextField19.getText()); 
     int activity_document_number = Integer.parseUnsignedInt(jTextField13.getText()); 
     String activity_st = jComboBox2.getSelectedItem().toString(); 

     Activity act = new Activity(activity_st, activity_number, activity_amount, activity_contract_number, activity_document_number); 
     act.printactivitytInformation(); 
     activity_hashmap.put(activity_number, act); 
     if (jTable1.getRowCount()==0){ 
      System.out.println("No Rows!!!"); 
      count_activities_amount = activity_amount; 
      Object[] row = { activity_contract_number, Integer.parseUnsignedInt(jTextField16.getText())-count_activities_amount, activity_amount, activity_st, activity_document_number }; 
      DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); 
      model.addRow(row); 
     } 
     else { 
      System.out.println("Have Rows!!!"); 
      for (int j=1;j<=jTable1.getRowCount();j++){ 
       count_activities_amount += Integer.parseUnsignedInt(jTable1.getValueAt(j, 3).toString()); 
      } 
      Object[] row = { activity_contract_number, Integer.parseUnsignedInt(jTextField16.getText())-count_activities_amount, activity_amount, activity_st, activity_document_number }; 
      DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); 
      model.addRow(row); 
     } 
     DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer(); 
     centerRenderer.setHorizontalAlignment(SwingConstants.CENTER); 
     jTable1.setDefaultRenderer(String.class, centerRenderer); 
     jTable1.repaint(); 
     jButton2.setEnabled(true); 
     jButton3.setEnabled(true); 
     jTextField18.setText(count_activities_amount.toString()); 
     } 


} 

При нажатии на кнопку во второй раз он не создает новый акт из моего класса активности и act.printactivitytInformation(); не показывает информацию.

Кажется, что код не работает после этой строки.

ответ

0

Наконец-то я нашел проблему случайно.

я работал над кодом, публикуемым в Create dynamic table to add new entry with button тогда я копируя и вставляя мое использовать условие, которые я узнал код здесь

else if (!activity_hashmap.isEmpty()){ 
    if (activity_number == -1){ 
     System.out.println("Error in Activity Number"); 
     JOptionPane.showConfirmDialog(null, "اشكال در شماره فعاليت لطفا دوباره تلاش كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
    } 
    else { 
     boolean exists = activity_hashmap.containsKey(activity_number); 
     if (exists){ 
      JOptionPane.showConfirmDialog(null, "ورودي موجود است لطفا دوباره بررسي كنيد", "Message", JOptionPane.PLAIN_MESSAGE); 
     } 
    } 

} 

доза не имеет какой-либо добавление объекта Activity к столу. Поэтому после первого нажатия кнопки я не добавляю никаких данных в таблицу. :)

Вот почему они говорят, проверяют ваши предложения if, даже если вы уверены в этом. ;)

Смежные вопросы