JSpinnerの文字列を非表示にする
Total: 6488, Today: 2, Yesterday: 1
Posted by aterai at 
Last-modified: 
Summary
SpinnerNumberModelを使用するJSpinnerを無効にしたとき、数値を非表示にします。
Screenshot

Advertisement
Source Code Examples
private static JSpinner makeSpinner1(SpinnerNumberModel m) {
  JSpinner s = new JSpinner(m);
  JFormattedTextField ftf = getJFormattedTextField(s);
  DecimalFormatSymbols dfs = new DecimalFormatSymbols();
  ftf.setFormatterFactory(makeFFactory(dfs));
  ftf.setDisabledTextColor(UIManager.getColor("TextField.disabledColor"));
  return s;
}
private static JSpinner makeSpinner2(SpinnerNumberModel m) {
  JSpinner s = new JSpinner(m);
  JFormattedTextField ftf = getJFormattedTextField(s);
  DecimalFormatSymbols dfs = new DecimalFormatSymbols();
  dfs.setNaN(" ");
  ftf.setFormatterFactory(makeFFactory(dfs));
  return s;
}
View in GitHub: Java, KotlinDescription
- デフォルト
 - 非表示
JSpinnerからJFormattedTextFieldを取得し、無効の場合の文字色を無効場合の背景色と同じにして非表示化
 - 半角スペース
JSpinnerからJFormattedTextFieldを取得し、DecimalFormatSymbols#setNaN(...)メソッドを使用して値がNaNの場合は表示する文字列を半角スペース(U+0020)に変更
 ----JSpinnerからJFormattedTextFieldを取得し、DecimalFormatSymbols#setNaN(...)メソッドを使用して値がNaNの場合は表示する文字列を----に変更