【问题标题】:How to change an editbox from minutes to hours in Java如何在 Java 中将编辑框从几分钟更改为几小时
【发布时间】:2014-02-12 01:04:27
【问题描述】:

我有一个变量,它是一个包含三分钟值的整数数组 (intArr)。然后我有三个编辑框(e1e2e3),其中e1取值intArr[0],e2取值intArr[1 ] 和 e3 取值 intArr[2]。我还有一个连接到变量的单选按钮(可以选择“以分钟为单位显示编辑框时间”或“以秒为单位显示编辑框时间”)。

如何将编辑框中的时间(最初以分钟为单位)更改为小时,或者根据选择的单选按钮以相反的方式从小时更改为分钟?

【问题讨论】:

    标签: java radio-button editbox


    【解决方案1】:

    首先,您需要检查已选中的单选按钮的值: 您可以使用:

    getText()isSelected()

    然后,根据选择的那一个,您可以设置编辑框的文本。 但是,您需要先获取文本字段的值。

    你可以使用:

    textField.getText();
    

    然后您可以使用以下方法将其解析为 int:

    Integer.parseInt(textField.getText());
    

    最后,你想把它除以 60 得到除数的余数:

    int hours = Integer.parseInt(textField.getText()) / 60; 
    int minutes = Integer.parseInt(textField.getText()) % 60;
    

    您还需要将文本字段设置为该新值:

    textField.setText(hours + ":" + minutes);
    

    【讨论】:

    • 我尝试按照您的建议进行操作,但我认为我做错了什么。当我运行它并将单选按钮从初始值(分钟)按到小时时,它实际上可以工作,但是如果我继续按下按钮,它将继续更改编辑框值直到它达到 0,然后如果我想按回分钟没有任何反应。我正在单选按钮内进行从几分钟到几小时的更改。那是对的吗?另外,我尝试通过 Double.parseDouble(textField.getText()) 将小时转换为分钟,然后 int min = (int)((double)Double.parseDouble(textField.getText())*60.
    • 好吧,如果您继续单击单选按钮,它将继续运行我描述的代码。我建议做的是创建一个布尔值,以跟踪文本字段是否以小时为单位。根据布尔值创建 if/else 语句。如果它已经设置为小时,不要让它再次这样做。
    • 尝试以下操作:double hours = Double.parseDouble(textField.getText())); int min = (int) ((double)hours * 60);
    • 当您只按一次单选按钮几分钟,然后按一次按钮几个小时,它就可以工作!但是,如果我按下按钮几次,例如在几个小时内,编辑框的值会减小,直到达到 0,如果我按下按钮几分钟,编辑框的值会增加,直到达到某个高值。
    • 那是因为每次您点击单选按钮时它都会尝试将其转换为小时。您应该设置一个变量:'boolean hours=true'。如果值为 true,那么您应该将 texfield 更改为小时,如果它是 false:只允许 textfield 更改为分钟。
    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2019-05-23
    • 2022-12-16
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多