【问题标题】:How to ensure that a JTextField input meets requirements?如何确保 JTextField 输入满足要求?
【发布时间】:2018-11-08 17:24:47
【问题描述】:

所以我正在制作一个具有三个 JTextField 窗口的模块,这些窗口对应于 24 位 RGB 颜色值“R”、“G”和“B”,并带有用于递减/递增的按钮。该模块应该采用这些值并显示颜色。我这样做了,它有效,但我需要确保有关输入的一些细节,但我不知道如何去做。这些细节是:

  1. 如果您输入的值不在 0 和 255 之间,它将被视为 0
  2. 如果您在值为 0 时单击递减按钮,它不会将其降至 -1
  3. 如果您在值为 255 时单击增量按钮,它不会上升到 256。我不知道该怎么做。我试图用谷歌搜索,但 我找不到我需要的东西。非常感谢您的指导

编辑: 我尝试向 ActionPerformed 方法添加一些 if 语句,但它所做的只是在我运行模块并尝试超出范围的值时返回一大堆错误

EDIT2:例如,我有这个,但它不起作用:

@Override
public void actionPerformed(ActionEvent e) {
    String r,g,b;

    if (e.getSource() == tf1) {
        r = tf1.getText();
        this.r =Integer.parseInt(r);
        if (this.r < 0 && this.r > 255)
            this.r =0;
        color(); }

我的按钮什么都没有,因为我完全不知道该怎么做

【问题讨论】:

  • 到目前为止你尝试过什么?你觉得有什么困难?你到底在哪儿呢?请展示您的努力和到目前为止的代码
  • 我试图用 if 语句来做,但它不起作用。一般来说,我不知道如何解决它以及从哪里开始?我不是在寻找解决方案,只是我可以用来使其工作的指导。剩下的我自己解决
  • 然后向我们展示您的尝试。但是,请尽量靠近minimal reproducible example。仔细阅读它是什么并应用该逻辑以使您的示例易于帮助
  • @zueyl 为什么不使用 JSpinner,因为您想要一个带有向上/向下按钮的数字输入字段?无需使用 JTextField 即可解决此问题。
  • 我用最初无效的代码编辑了我的帖子

标签: java swing jtextfield


【解决方案1】:

听起来您可能需要对输入源进行一些数据验证。我们看不到您的代码,但一种验证方法是为您的变量生成 getter/setter。 (取决于您拥有的编辑器,这些可以很快生成)。在值设置器中 - 您应该能够进行一些数据验证。

如果您发布一些代码,您可能会得到更有意义的反馈。

更多关于 Java 中的 getter 和 setter:https://www.codejava.net/coding/java-getter-and-setter-tutorial-from-basics-to-best-practices

编辑: 现在您已经发布了代码。将 && 更改为 ||这应该可以解决您的问题。

最好使用 getter/setter 进行数据验证。

【讨论】:

  • 这不能回答问题
  • 回答了当时提供的详细信息。现在已更新以包含解决方案。感谢您的帮助!
  • 我们缺乏有关该问题的关键信息。不鼓励为描述不完整的问题提供答案
  • 好的 - 听起来像个计划。
猜你喜欢
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2017-11-27
  • 2019-05-11
  • 1970-01-01
  • 2021-01-13
  • 2013-01-17
  • 2022-07-02
相关资源
最近更新 更多