Как убрать удержание цвета с кнопки - PullRequest
0 голосов
/ 24 апреля 2019

Когда проверка правильна, кнопка si помещается в зеленый цвет, тогда я выполняю неправильную проверку, и кнопка si остается в том же цвете.

Я пытался выбрать оригинальный цвет обеих кнопок, но он не работает для кнопки si.

enter image description here

enter image description here

enter image description here

private void btn_validarActionPerformed(java.awt.event.ActionEvent evt) {                                            
    String w_correo = caja_correo.getText();
    Pattern p_correo1 = Pattern.compile("^(?=.{1,129}$)[a-zA-Z][a-zA-Z][a-zA-Z]*\\.[a-zA-Z][a-zA-Z][a-zA-Z]*\\.(?:2019|20[2-9][0-9]|2[1-9][0-9]{2}|[3-9][0-9]{3})@([0-9]|[a-z]|[A-Z])+\\.edu.?[a-z]*$");
        Matcher m_correo1 = p_correo1.matcher(w_correo);
     Pattern p_correo2 = Pattern.compile("^(?=.{1,129}$)(?:2018|201[0-7]|200[0-9]|1[0-9]{1,3}|[0-9]{1,3})\\.[a-zA-Z][a-zA-Z][a-zA-Z]*\\.[a-zA-Z][a-zA-Z][a-zA-Z]*@\\w+(?:\\.\\w+)*\\.com\\.co$");
    Matcher m_correo2 = p_correo2.matcher(w_correo);    

    correcto.setBackground(null);  
    incorrecto.setBackground(null);

    if (m_correo1.matches()|| m_correo2.matches()) {
        correcto.setBackground(null);  
        incorrecto.setBackground(null);
        String validacion = "";
        validacion = validacion +  "Direccion de correo electrónico correcta";
        JOptionPane.showMessageDialog(null, validacion);
        correcto.setForeground(Color.GREEN);

    }

    else { 

        String validacion = "";
        if (!m_correo1.matches() || m_correo2.matches()) {
            correcto.setBackground(null);  
            incorrecto.setBackground(null);    
            validacion = validacion + "Direccion de correo electrónico incorrecta";
            JOptionPane.showMessageDialog(null, validacion);
                incorrecto.setBackground(Color.RED);
        }
    }
}

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

1 Ответ

0 голосов
/ 24 апреля 2019

В вашем правильном блоке (тот, который устанавливает зеленый текст) вы хотите позвонить incorrect.setBackground(null), чтобы удалить из него цвет фона.В другом блоке вы также должны удалить зеленый цвет с кнопки correcto (setForeground(null)), чтобы обозначить изменение на ложный ответ.

Обратите внимание, что Swing требует от вас вызова repaint() наизмененный элемент пользовательского интерфейса, чтобы обеспечить его перерисовку, иначе он будет перерисован только после того, как конкретное событие приведет к перерисовке пользовательского интерфейса (например, изменение размера JFrame).

Как подсказка длясторона, вы должны найти более подходящие имена для ваших переменных.Те, что вы выбрали, очень трудно читать, так как они все одинаковы, но для отдельных символов или цифр.Например, ваши шаблоны могут называться p_correctEdu, а другие p_correctCom.

...