微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GUI卡住了Java netbeans,

如何解决GUI卡住了Java netbeans,

我在我的 GUI 中添加一个函数,它可以永久保存。 之前运行良好。

The Picture Here is showing my stuck GUI

public void setBalance(String username,double balance){

        Node current = headNode;

        while(current!=null)
        {
            if(current.username.equalsIgnoreCase(username))
            {
                current.setBalance(balance);

            }else{
                current=current.getNext();
             
            }
        }
    }

这是我写的函数,它只是卡在那里。

private void D_EnteractionPerformed(java.awt.event.ActionEvent evt) { 
                                       
        // Todo add your handling code here:
        String username = accountUsername.getText();

        String password = accountPassword.getText();

        boolean flag = false;
       S_Balance=l.findBalance(username,password);
        Deposit_text.setVisible(true);
        num1 = S_Balance + Double.parseDouble(D_deposit_text.getText()) ;
        Deposit_text.setEditable(false);
        Deposit_text.setText("PrevIoUs Balance:"+Double.toString(S_Balance)+"\nNew Balance:"+Double.toString(num1));
        S_Balance = S_Balance + Double.parseDouble(D_deposit_text.getText());
        l.setBalance(username,S_Balance);
        this.N_Deposit++;
        D_deposit_text.setText("");
        if(S_Balance < 25)
        {
            Status.setVisible(true);
            Active_Status.setVisible(false);
            S_TextField.setText("Your Balance is less than $25");
            SmileyFace.setVisible(false);
            Smiley1.setVisible(true);
        }else{
            Status.setVisible(false);
            Active_Status.setVisible(true);
            S_WithDraw.setEnabled(true);
            S_TextField.setText("You are good to go!!!");
            SmileyFace.setVisible(true);
            Smiley1.setVisible(false);
            W_Enter.setEnabled(true);
        }
    }                   

这就是它被调用的地方。

解决方法

你被卡住了,因为当你找到用户名时,你没有打破 while 循环(所以它会永远运行)。您应该执行以下操作:

public void setBalance(String username,double balance){

    Node current = headNode;

    while(current!=null)
    {
        if(current.username.equalsIgnoreCase(username))
        {
            current.setBalance(balance);
            break; // this will break the loop

        }else{
            current=current.getNext();
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。