2013-06-14 2 views
0

У меня есть Jtextfield, где я пишу результат внутри. Затем я хочу нажать enter, пока мой курсор находится в jtextfield, и активируйте jbutton с именем next.I к моему конструктору эта команда: «getRootPane(). setDefaultButton (next);», и хорошо работать. После того, как я перехожу от создания шрифта из всех jbuttons и jlabels, а затем, когда я нажимаю i jtextfield и нажимаю enter, ничего не происходит.Как написать текст, а затем нажать enter и активировать jbutton

public class PrakseisGameGUI extends javax.swing.JFrame { 



int correctAns; 
int allAns; 
int oldResult; 
int flag; 

public PrakseisGameGUI() { 

    initComponents(); 

    getRootPane().setDefaultButton(next); 
    Global.correctAns = 0; 
    Global.allAns = 0; 
    oldResult = -500; 
    flag = 0; 
} 

/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 

private void nextActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    String sResult; 
    String sCorAns; 
    String sAllAns; 
    String sOperator; 


    int iFirstNum = 0; 
    int iSecNum = 0; 
    int iOperator = 0; 
    int iResult = 0; 
    int iCorResult = 0; 
    int oldFirstNum = 0; 
    int oldSecNum = 0; 
    int oldOperator = 0; 

    Random rand = new Random(); 


    JFrame frame = new JFrame(); 
    JButton btn = new JButton("Next"); 
    frame.getRootPane().setDefaultButton(btn); 




    if(Global.epdi == 1){ 
     iFirstNum = rand.nextInt(11); 
     iSecNum = rand.nextInt(11); 
     iOperator = rand.nextInt(2); 
    }else if(Global.epdi == 2){ 
     iFirstNum = rand.nextInt(11); 
     iSecNum = rand.nextInt(11); 
     iOperator = rand.nextInt(3); 
    }else if(Global.epdi == 3){ 
     iFirstNum = rand.nextInt(20); 
     iSecNum = rand.nextInt(11); 
     iOperator = rand.nextInt(3); 
    }else{ 
     iFirstNum = rand.nextInt(11); 
     iSecNum = rand.nextInt(11); 
     iOperator = rand.nextInt(2); 

    } 
    if(iOperator == 0){ 
     sOperator = "+"; 
     iCorResult = iFirstNum + iSecNum; 
    }else if(iOperator == 1){ 
     sOperator = "-"; 
     iCorResult = iFirstNum - iSecNum; 
    }else if(iOperator == 2){ 
     sOperator = "*"; 
     iCorResult = iFirstNum * iSecNum; 
    }else{ 
     sOperator = "-----"; 
     iCorResult = 0; 
    } 
    firstNum.setText(String.valueOf(iFirstNum)); 
    operator.setText(sOperator); 
    secNum.setText(String.valueOf(iSecNum)); 
    stableOperator.setText("="); 
    slash.setText("/"); 
    long startTime = System.nanoTime();  

    if((oldResult != -500) && (flag == 1)){ 

     sResult = result.getText(); 
     iResult = Integer.parseInt(sResult); 

     System.out.format("%d,%d\n",iResult,oldResult); 
     if(iResult == oldResult){ 
      Global.correctAns++; 
     } 
     //result.setText(""); 

     oldResult = iCorResult; 
     Global.allAns++; 
    }else if(flag == 0) { 

      oldResult = iCorResult; 
      flag =1; 
    } 

    sCorAns = String.valueOf(Global.correctAns); 
    sAllAns = String.valueOf(Global.allAns); 
    corAnswer.setText(sCorAns); 
    allAnswer.setText(sAllAns); 
    if(Global.allAns == 10){ 
     Global.estimatedTime = System.nanoTime() - startTime; 
     System.out.format("%d\n", Global.estimatedTime); 
     setVisible(false); 
     seeResults seRes = new seeResults(); 
     seRes.setVisible(true); 
    } 

}          




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

private void resultActionPerformed(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 */ 

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

      new PrakseisGameGUI().setVisible(true); 

     } 

    }); 
} 
+0

Пожалуйста, разместите только соответствующий код и попробуйте обрезать пустые строки. Кроме того, вы могли бы четко указать, что происходит и что вы ожидаете. Ваш вопрос также создает впечатление, что у вас была рабочая версия, и после небольшого изменения она перестала работать. Пожалуйста, четко укажите, что вы изменили, когда он прекратил работать. – Robin

+0

Извините за это, но был моим первым сообщением, и я не знаю, как это сделать. Позвольте мне объяснить больше своей проблемы. У меня есть Jtextfield, где я пишу результат внутри . Затем я хочу нажать enter, пока мой курсор находится в поле jtextfield, и активируйте jbutton с именем next.I имел для моего конструктора эту команду: «getRootPane(). SetDefaultButton (next);» и хорошо работать. После того, как я изменил создавая шрифт из всех jbuttons и jlabels, а затем, когда я нажимаю i jtextfield и нажимаю enter, ничего не происходит. – user2485610

+0

@ user2485610, вы должны отредактировать исходный вопрос, а не предоставлять детали в комментариях. – 1615903

ответ

1

У меня есть JTextField, где я пишу результат inside.Then я хочу нажать войти в то время как мой курсор находится в JTextField, и активировать JButton с именем следующего.

Используйте тот же ActionListener для текстового поля и кнопки.

ActionListener next = new ActionListener(...); 
textField.addActionListener(next); 
button.addActionListener(next);