JOptionPane и условия в нём

167
06 февраля 2022, 22:30

Есть код который можно реализовать с JOptionPane

if (inputX1 > inputX2) {
    JOptionPane.showMessageDialog(null, "X1 должен быть меньше X2");
    SimpleGUI.inputX1.setText("");
    SimpleGUI.inputX2.setText("");
    SimpleGUI.inputZ1.setText("");
    SimpleGUI.inputZ2.setText("");
}
if (inputZ1 > inputZ2) {
    JOptionPane.showMessageDialog(null, "Z1 должен быть меньше Z2");
    SimpleGUI.inputX1.setText("");
    SimpleGUI.inputX2.setText("");
    SimpleGUI.inputZ1.setText("");
    SimpleGUI.inputZ2.setText("");
}
if ((inputX1 < inputX2) && (inputZ1 < inputZ2)) {
    JOptionPane.showMessageDialog(null, "Строиться можно начиная с координат XZ:" + resultX + " " + resultZ);
}

Сейчас я понимаю так

JOptionPane.showMessageDialog(null, (inputZ1<inputZ2) ? (inputX1<inputX2) ? "1" : "2" : "3");
Если `(inputZ1<inputZ2) ? (inputX1<inputX2)` true выводиться 1
Если `(inputZ1<inputZ2)` true выводиться 2
Если `(inputX1<inputX2)` true выводиться 3

Мне нужно было сделать что при (inputZ1<inputZ2) ? (inputX1<inputX2) выводиться сообщение "Строиться можно начиная с координат XZ:" + resultX + " " + resultZ И я вот сейчас не понимаю как сделать что бы

Если (inputZ1<inputZ2) true не выводилось 2

Если (inputX1<inputX2) true не выводилось 3

Я писал вместо 2 и 3 null выводилось пустое сообщение

Answer 1

Можно так:

 String msg0 = "Строиться можно начиная с координат XZ:{0} {1}";
 String msg1 = "X1 должен быть меньше X2";
 String msg2 = "Z1 должен быть меньше Z2";
 if((inputX1 < inputX2) && (inputZ1 < inputZ2)){
     JOptionPane.showMessageDialog(null, MessageFormat.format(msg0, resultX,  resultZ));
 } else if((inputX1 > inputX2) && (inputZ1 > inputZ2)){
     JOptionPane.showMessageDialog(null, msg1 + " и " + msg2);
 } else if(inputX1 > inputX2){
     JOptionPane.showMessageDialog(null, msg1);
 } else if(inputZ1 > inputZ2){
     JOptionPane.showMessageDialog(null, msg2);
 }
Answer 2

Предлагаю следующую логику:

boolean doWeHaveError = false;
String message;
if(x1 >= x2) {
    doWeHaveError = true;
    //добавляйте нужное сообщение
}
if(z1 >= z2) {
    doWeHaveError = true;
    if(doWeHaveError){
       message += " и ";
    }
    //добавляйте нужное сообщение
}
if(!doWeHaveError) {
    //добавляйте нужное сообщение
}
READ ALSO
Использование hint в java

Использование hint в java

Есть эдит (JTextField) Необходимо сделать подсказку для него

102
Добавление картинки в ресурсы проекта и дальнейшее её использование

Добавление картинки в ресурсы проекта и дальнейшее её использование

Есть Bgroundjpg в изображениях Как добавить его в ресурсы проекта и потом установить как Bground

168
Message Send to Email

Message Send to Email

Ребята хочу отправить песьмо на имейл но у меня на 28 строке исключение Exception in thread "main" javalang

100
Размер экрана Android

Размер экрана Android

почему то приложение при считывания размера экрана getSize() стало давать не реальные размеры, а на 25% меньше

66