如何删除jbutton的颜色保持

时间:2019-04-24 03:28:41

标签: java swing jbutton

当验证正确时,将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 :(得分:0)

在您要调用incorrect.setBackground(null)的正确代码块(将文本设置为绿色的代码块)内,以便从其中删除背景色。 在另一个块中,您还应该从correcto-按钮(setForeground(null))中删除绿色,以表示更改为错误答案。

请注意,Swing要求您在已更改的UI元素上调用repaint(),以确保重绘,否则,只有在特定事件导致UI重绘后(例如,{ {1}}大小。

作为提示,您应该为变量找到更多合格的名称。您选择的字母很难阅读,因为它们实际上是相同的,但只包含一些单个字符或数字。例如,您的模式可以命名为JFrame,另外一个p_correctEdu