Swing/HexFormatterSpinner のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/HexFormatterSpinner へ行く。
- 1 (2013-06-03 (月) 04:18:20)
- 2 (2013-06-05 (水) 02:27:40)
- 3 (2013-10-21 (月) 20:50:00)
- 4 (2014-11-15 (土) 01:06:54)
- 5 (2014-12-02 (火) 15:55:42)
- 6 (2016-02-18 (木) 15:57:48)
- 7 (2016-05-26 (木) 14:57:32)
- 8 (2017-04-04 (火) 14:17:08)
- 9 (2017-08-09 (水) 15:43:51)
- 10 (2018-08-12 (日) 18:40:35)
- 11 (2018-10-16 (火) 13:29:02)
- 12 (2019-04-26 (金) 17:48:33)
- 13 (2019-04-26 (金) 19:59:38)
- 14 (2019-07-30 (火) 22:06:08)
- 15 (2021-04-02 (金) 17:10:56)
- 16 (2022-08-20 (土) 22:25:44)
TITLE:JSpinnerの表記を16進数にする
Posted by aterai at 2013-06-03
JSpinnerの表記を16進数にする
`JSpinner
の表記を
16
進数にして、その
Unicode
`コードポイントに割り当てられた文字を表示します。
- &jnlp;
- &jar;
- &zip;
サンプルコード
DefaultFormatter hexformatter = new DefaultFormatter() {
@Override public Object stringToValue(String text) throws ParseException {
try{
return Integer.valueOf(text, 16);
}catch(NumberFormatException nfe) {
throw new ParseException(text, 0);
}
}
private final String MASK = "000000";
@Override public String valueToString(Object value) throws ParseException {
String str = MASK + Integer.toHexString((Integer)value).toUpperCase();
int i = str.length() - MASK.length();
return str.substring(i);
}
};
hexformatter.setValueClass(Integer.class);
hexformatter.setOverwriteMode(true);
View in GitHub: Java, Kotlin解説
上記のサンプルでは、`DefaultFormatter#stringToValue(String)
と
DefaultFormatter#valueToString(Object)
をオーバーライドして、
0
から
0x10FFFF
までの整数を
16
進数で表示する
Formatter
を作成し、
JSpinner
`に設定しています。
- `
JSpinner
`から取得した数値(コードポイント)から文字を生成する時、サロゲートペアなどの基本多言語面(BMP)外に対応するために以下のような方法を使用しています。
int code = ((Integer)spinner.getValue()).intValue();
char[] ca = Character.toChars(code);
String str = new String(Character.toChars(code));
IPAmj明朝とIPAex明朝フォントがインストールされている場合、その文字を比較することができます。