Как обеспечить соответствие входных данных JTextField требованиям? - PullRequest
0 голосов
/ 08 ноября 2018

Итак, я делаю модуль, который имеет три окна JTextField, соответствующие 24-битным значениям цвета RGB «R», «G» и «B», с кнопками для уменьшения / увеличения. Модуль должен принимать эти значения и отображать цвет. Я сделал это, и это работает, но мне нужно уточнить некоторые детали о входных данных, и я не знаю, как это сделать. Эти детали:

  1. если вы введете значение за пределами 0 и 255, оно будет рассматриваться как 0
  2. если вы нажмете кнопку уменьшения при значении 0, оно не упадет до -1
  3. если вы нажмете кнопку увеличения при значении 255, оно не возрастет до 256. Я понятия не имею, как это сделать. Я пытался гуглить, но Я не могу найти то, что мне нужно. Буду признателен за руководство

EDIT: Я попытался добавить некоторые операторы if в метод ActionPerformed, но все, что он делает - возвращает целую кучу ошибок, когда я запускаю модуль и пробую значение вне диапазона

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(); }

У меня ничего нет для моих кнопок, потому что я совершенно не знаю, как

1 Ответ

0 голосов
/ 08 ноября 2018

Похоже, вам может потребоваться проверка данных из ваших источников ввода. Мы не можем увидеть ваш код, но одним из способов проверки было бы создание ваших методов получения / установки для ваших переменных. (В зависимости от вашего редактора, они могут быть созданы довольно быстро). В установщике значений - вы должны быть в состоянии сделать некоторые проверки данных.

Если вы разместите некоторый код, вы можете получить более значимый отзыв.

Подробнее о методах получения и установки в Java: https://www.codejava.net/coding/java-getter-and-setter-tutorial-from-basics-to-best-practices

EDIT: Теперь, когда вы разместили код. Измените && на || и это должно заботиться о вашей проблеме.

Еще лучше, чтобы данные подтвердили это с помощью метода получения / установки.

...