2016-10-14 24 views
1

私は、TextFieldの背景色を設定し、問題を持っている:CodenameOne背景色

private TextField mValueField; 

public void setFgColor(int color) { 
    mValueField.getAllStyles().setBgTransparency(0xFF); 

    if (color == Controller.WHITE_COLOR) { 
     mValueField.getAllStyles().setBgColor(0xFFFFFF); 
    } else if (color == Controller.RED_COLOR) { 
     mValueField.getAllStyles().setBgColor(0xFF0000); 
    } 
} 

最初の呼び出しは白い色を設定し、後続の呼び出しは、白や赤の色を設定するが、テキストフィールドの背景には、すべての時間白いまま。最初の呼び出しの色を赤に変更すると、TextFieldの背景色は赤になりますが、後で白に設定すると変更されません。

答えて

1

BGの色を変更した後、すぐにテキストフィールドが色の背景が違いをすることはありません境界線を持っているので、私もそれを追加したいmValueField.getComponentForm().repaint();またはmValueField.getParent().repaint();

+1

を呼び出す必要があります。だから 'mValueField.getAllStyles()。setBorder(null)'は色を設定しますが、それはおそらく「正しい方法」ではありません... 'setUIID(" TextFieldInvalid ")'を使ってそれをスタイリングすることをお勧めします。彼がやろうとしているようだ –