2015-02-02 6 views
0

Netbeans에서 잘 작동하는 기본 일반 방법으로 프로그램을 작성했습니다. 그러나, GUI가 필요하므로 IDE없이 작동하는 실행 가능한 jar 파일을 만들려고합니다. 내 프로그램은 나에게서 입력 질문 (문자열)을 받아 출력 (다른 문자열)을 표시합니다. 질문과 입력은 두 개의 별도 String 배열에 저장됩니다.Java GUI에서 ButtonActionPerformed for 루프를 사용하는 방법

여기 내 코드입니다. 루프는 일반 Java의 main 메소드 내부에서 잘 작동하지만 GUI에서는 많은 오류가 표시됩니다.

이것은 일반적인 자바 코드입니다. 여기

package gadhagasker; 

import java.util.*; 

public class Gadhagasker { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    // TODO code application logic here 
    Scanner tc = new Scanner(System.in); 
    String[] Answer = {"My name is Gadhagasker.", "I am fine"}; 
    String[] Question = {"what is your name?", "how are you?"}; 
    String give = tc.nextLine(); 
    int a = 0; 
    String question = give.toLowerCase(); 
    for (int i = 0; i < Question.length; i++) { 
     if (question.equals(Question[i])) { 
      System.out.println("Gadhagasker: " + Answer[i]); 
      a = 1; 
      break; 
     } 

    } 
    if (a == 0) { 
     System.out.println("Gadhagasker: " + "Sorry, I cannot answer that, I am still learning."); 
    } 
} 

} 

당신은 어떤 작동하는지 };

참조 missplaced 한

public class Gadhagasker extends javax.swing.JFrame { 

public Gadhagasker() { 
    initComponents(); 
} 

@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jLabel1 = new javax.swing.JLabel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jLabel3 = new javax.swing.JLabel(); 
    jLabel4 = new javax.swing.JLabel(); 
    jTextField1 = new javax.swing.JTextField(); 
    jTextField2 = new javax.swing.JTextField(); 
    jButton1 = new javax.swing.JButton(); 

    jLabel1.setText("jLabel1"); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jLabel2.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N 
    jLabel2.setText("Gadhagasker"); 

    jLabel3.setText("User"); 

    jLabel4.setText("Gadhagasker"); 

    jTextField1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jTextField1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField1ActionPerformed(evt); 
     } 
    }); 

    jTextField2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField2ActionPerformed(evt); 
     } 
    }); 

    jButton1.setText("Say"); 
    jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton1ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(50, 50, 50) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addComponent(jLabel4)) 
      .addGap(29, 29, 29) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
       .addComponent(jTextField1) 
       .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 187, Short.MAX_VALUE) 
       .addComponent(jLabel2)) 
      .addContainerGap(43, Short.MAX_VALUE)) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
      .addComponent(jButton1) 
      .addGap(127, 127, 127)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(35, 35, 35) 
      .addComponent(jLabel2) 
      .addGap(37, 37, 37) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jLabel3) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel4) 
       .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGap(18, 18, 18) 
      .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(100, Short.MAX_VALUE)) 
    ); 

    pack(); 
}// </editor-fold>       

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
}           

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    String Give=jTextField1.getText(); 
    String[] Answer = {"My name is Gadhagasker.", "I am fine"}; 
    String[] Question = {"what is your name?", "how are you?"}; 
    int a = 0; 
    String question = Give.toLowerCase(); 
} 
    for (int i = 0; i < Question.length; i++) { 
     if (question.equals(Question[i])) { 
      jTextField2.setText(Answer[i]); 
      a = 1; 
      break; 
     } 

    } 
    if (a == 0) { 
     jTextField2.setText("Sorry, I cannot answer that, I am still learning."); 

}           

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
}           

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new Gadhagasker().setVisible(true); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JButton jButton1; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel3; 
private javax.swing.JLabel jLabel4; 
private javax.swing.JTextField jTextField1; 
private javax.swing.JTextField jTextField2; 
// End of variables declaration     
} 
+0

하지 ... 않는 그것은 IDE에서 작동합니까? JAR에서 패키지하려고 할 때만 문제가됩니까? –

+0

오류 메시지를 게시 할 수 있습니까? – minarmahmud

+0

오류를 표시 할 수 있습니까? 우리는 추측 할 수 없습니다 ... –

답변

0

GUI의 코드입니다 : 이해해야합니다

public class Gadhagasker extends javax.swing.JFrame { 

public Gadhagasker() { 
    initComponents(); 
} 

@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jLabel1 = new javax.swing.JLabel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jLabel3 = new javax.swing.JLabel(); 
    jLabel4 = new javax.swing.JLabel(); 
    jTextField1 = new javax.swing.JTextField(); 
    jTextField2 = new javax.swing.JTextField(); 
    jButton1 = new javax.swing.JButton(); 

    jLabel1.setText("jLabel1"); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jLabel2.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N 
    jLabel2.setText("Gadhagasker"); 

    jLabel3.setText("User"); 

    jLabel4.setText("Gadhagasker"); 

    jTextField1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jTextField1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField1ActionPerformed(evt); 
     } 
    }); 

    jTextField2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField2ActionPerformed(evt); 
     } 
    }); 

    jButton1.setText("Say"); 
    jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton1ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(50, 50, 50) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addComponent(jLabel4)) 
      .addGap(29, 29, 29) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
       .addComponent(jTextField1) 
       .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 187, Short.MAX_VALUE) 
       .addComponent(jLabel2)) 
      .addContainerGap(43, Short.MAX_VALUE)) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
      .addComponent(jButton1) 
      .addGap(127, 127, 127)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(35, 35, 35) 
      .addComponent(jLabel2) 
      .addGap(37, 37, 37) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jLabel3) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel4) 
       .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGap(18, 18, 18) 
      .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(100, Short.MAX_VALUE)) 
    ); 

    pack(); 
}// </editor-fold>       

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
}           

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    String Give=jTextField1.getText(); 
    String[] Answer = {"My name is Gadhagasker.", "I am fine"}; 
    String[] Question = {"what is your name?", "how are you?"}; 
    int a = 0; 
    String question = Give.toLowerCase(); 
    for (int i = 0; i < Question.length; i++) { 
     if (question.equals(Question[i])) { 
      jTextField2.setText(Answer[i]); 
      a = 1; 
      break; 
     } 

    } 
    if (a == 0) { 
     jTextField2.setText("Sorry, I cannot answer that, I am still learning."); 
    } 

}           

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
}           

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(Gadhagasker.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new Gadhagasker().setVisible(true); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JButton jButton1; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel3; 
private javax.swing.JLabel jLabel4; 
private javax.swing.JTextField jTextField1; 
private javax.swing.JTextField jTextField2; 
// End of variables declaration     
} 
+0

고마워요,하지만 GUI가 시작되지 않습니다 및 콘솔 입력 묻습니다. –

+0

나는 내 ans에서 동일한 코드를 실행했고, 정상적으로 작동했습니다! 올바른 코드를 실행하고 있는지 확인하십시오! 콘솔 창을 열 수있는 방법이 없기 때문에! – minarmahmud

+0

그것은 실제로 작동합니다, 고마워요, 어디 출신입니까? –

관련 문제