清除按钮仅使计数器JLabel为空,但不会重置它。

时间:2017-05-16 20:50:02

标签: java swing counter jlabel

我已经提出了这个申请:

image

例如当我在计数器JLabel(pointsAvailable)为19时单击清除按钮时,计数器JLabel会按预期变为空白,但是当我再次开始添加点时,它会从开始时设置的19而不是40开始。我想让它重新设置为40而不是让它变成空白

清除按钮的代码

private void JButtonActionPerformed(java.awt.event.ActionEvent evt) {                                        
    speedPoints.setText("");
    attackPoints.setText("");
    defencePoints.setText("");
    powerPoints.setText("");
    agilityPoints.setText("");
    focusPoints.setText("");
    availablePoints.setText("");
}  

Jlabel计数器代码

    public class addingPointsUI extends javax.swing.JFrame {
int pointsAvailable=40;
        int speed=0;
        int power=0;
        int focus=0;
        int agility=0;
        int defence=0;
        int attack=0;

按钮代码+/-:允许我添加或减少值“示例电源 - 按钮”

private void powerMinusActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (power > 0 ){
        if (pointsAvailable <= 0) {
    JOptionPane.showMessageDialog(null, "You are out of available points");
    return;
        }
        power = power - 1;

        pointsAvailable = pointsAvailable +1;

        availablePoints.setText(String.valueOf(pointsAvailable));

        powerPoints.setText(String.valueOf(power));

    }else {

            JOptionPane.showMessageDialog(null,"You cannot take anymore points from Power");
    }
}

感谢您的回复。

3 个答案:

答案 0 :(得分:1)

JSpinnerSpinnerNumberModel一起使用。更改模型的值。组件将更新,进一步的更改将对模型的当前值起作用。

答案 1 :(得分:0)

我可以快速想到两个解决方案: 1.在清除按钮的事件处理程序中包括以下内容:

private void JButtonActionPerformed(ActionEvent evt){
    ...
    pointsAvailable=40;
    speed=0;
    power=0;
    focus=0;
    agility=0;
    defence=0;
    attack=0;
}

这将重置您的所有统计信息。  2.或者,您可以向每个添加或减去统计信息的按钮的侦听器添加if语句,以检查特定统计信息是否为空。例如,对于速度按钮,代码看起来像这样:

if (speedPoints.getText() == ""){
    pointsAvailable += speed;
    speed = 0;
}

答案 2 :(得分:0)

在google上找到我自己的解决方案:

private void ClearActionPerformed(java.awt.event.ActionEvent evt) {     
speedPoints.setText(String.valueOf(0));
powerPoints.setText(String.valueOf(0));
agilityPoints.setText(String.valueOf(0));
defencePoints.setText(String.valueOf(0));
focusPoints.setText(String.valueOf(0));
attackPoints.setText(String.valueOf(0));
availablePoints.setText(String.valueOf(40));
 }                                     

完美运作