2016-12-23 2 views
0

Мой вопрос в том, как сделать всплывающее сообщение, когда пользователь вводит неправильный ввод, он связан с заполнением правой строки (rood, groen, oranje) с правильным цветом, но когда он ничего не помещает в текстовое поле или неправильное имя (строка), он должен возвращать ошибку во всплывающем окне.Java exceptions pop up window

Отрывок ниже:

Java класс фрагмент кода:

int Kleurteller; 
    for (Kleurteller = 1; Kleurteller <= 7; Kleurteller++) { 
     if (kleur != null) { 
      if (kleur.equals("rood")) { 
       g.setColor(Color.red); 
       g.fillOval(795, 45, 30, 30); 
      } else if (kleur.equals("groen")) { 
       g.setColor(Color.green); 
       g.fillOval(795, 45, 30, 30); 
      } else if (kleur.equals("oranje")) { 
       g.setColor(Color.orange); 
       g.fillOval(795, 45, 30, 30); 
      } 
      else { 
      try{} 
      catch (Exception e){ 
      JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje"); 

      } 

      } 

     } 
    } 

В моей MainClass я есть путь к файлу, так что будет запускать его. (SetContentPane).

В настоящее время больше не отображается красная линия, когда пользователь помещает неправильные вещи в текстовое поле. Не получите всплывающее окно, которое мне нужно для моей программы

ответ

2

просто дайте попробовать/утащить:

int Kleurteller; 
    for (Kleurteller = 1; Kleurteller <= 7; Kleurteller++) { 
     if (kleur != null) { 
      if (kleur.equals("rood")) { 
       g.setColor(Color.red); 
       g.fillOval(795, 45, 30, 30); 
      } else if (kleur.equals("groen")) { 
       g.setColor(Color.green); 
       g.fillOval(795, 45, 30, 30); 
      } else if (kleur.equals("oranje")) { 
       g.setColor(Color.orange); 
       g.fillOval(795, 45, 30, 30); 
      } 
      else { 
       JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje"); 
      } 
     } 
    } 

Btw, я рекомендую вам всегда начинаются имена переменных с строчной буквы, делает его более легким чтобы различать имена классов и имена переменных.

И если вы делаете это так, вы не должны даже проверить, что kleur не null:

 if ("rood".equals(kleur)) { 
      g.setColor(Color.red); 
      g.fillOval(795, 45, 30, 30); 
     } else if ("groen".equals(kleur)) { 
      g.setColor(Color.green); 
      g.fillOval(795, 45, 30, 30); 
     } else if ("oranje".equals(kleur)) { 
      g.setColor(Color.orange); 
      g.fillOval(795, 45, 30, 30); 
     } 
     else { 
      JOptionPane.showMessageDialog(null, "geen juiste kleur opgegeven, kies rood, groen of oranje"); 
     } 
+0

хорошо, что работает, но когда и было запустить программу, это сообщение остается и у не могу закрыть его. Единственный способ - закрыть программу, чтобы закрыть вкладку. Идея исправить это? – Distortion

+0

В диалоговом окне должна быть кнопка «ОК», нет? – user7291698

+0

да есть, все кажется наложенным штрафом, но когда вы хотите щелкнуть по нему, он не закрывается. – Distortion