[英]How to remove the color hold of a jbutton
當驗證正確時,si 按鈕被放置為綠色,然后我執行了不正確的驗證並且 si 按鈕仍為該顏色。
我試圖選擇兩個按鈕的原始顏色,但它不適用於 si 按鈕。
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 按鈕停止保持綠色
在您的正確塊(將文本設置為綠色的塊)中,您要調用incorrect.setBackground(null)
以從中刪除背景顏色。 在其他塊,你也應該刪除從綠色correcto
-按鈕( setForeground(null)
來表示一個改變以一個虛假的答案。
請注意,Swing 要求您在更改的 UI 元素上調用repaint()
,以確保重繪它,否則只會在特定事件導致 UI 重繪(例如JFrame
大小的更改)后重繪。
作為側面的提示,您應該為您的變量找到更多符合條件的名稱。 您選擇的那些很難閱讀,因為它們實際上都是相同的,但是對於某些單個字符或數字。 例如,您的模式可以命名為p_correctEdu
和另一個p_correctCom
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.