Swing/HexFormatterSpinner のバックアップ差分(No.6)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - 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進数にする tags: [JSpinner, DefaultFormatter, Font] author: aterai pubdate: 2013-06-03T04:18:20+09:00 description: JSpinnerの表記を16進数にして、そのUnicodeコードポイントに割り当てられた文字を表示します。 --- * 概要 [#gd25fd97] `JSpinner`の表記を`16`進数にして、その`Unicode`コードポイントに割り当てられた文字を表示します。 #download(https://lh4.googleusercontent.com/-eTZU_kuJGK4/UauUgRcPuTI/AAAAAAAABtc/7FNouA9JcLI/s800/HexFormatterSpinner.png) * サンプルコード [#t5f5a11f] #code(link){{ private static DefaultFormatterFactory makeFFactory() { DefaultFormatter formatter = new DefaultFormatter() { @Override public Object stringToValue(String text) throws ParseException { return Integer.valueOf(text, 16); } @Override public String valueToString(Object value) throws ParseException { return String.format("%06X", (Integer) value); } }; formatter.setValueClass(Integer.class); formatter.setOverwriteMode(true); return new DefaultFormatterFactory(formatter); } }} * 解説 [#vce45de0] 上記のサンプルでは、`DefaultFormatter#stringToValue(String)`と`DefaultFormatter#valueToString(Object)`をオーバーライドして、`0`から`0x10FFFF`までの整数を`16`進数で表示する`Formatter`を作成し、`JSpinner`に設定しています。 ---- - `JSpinner`から取得した数値(コードポイント)から文字を生成する時、サロゲートペアなどの基本多言語面(`BMP`)外に対応するために以下のような方法を使用しています。 -- 参考: [http://docs.oracle.com/javase/tutorial/i18n/text/usage.html Sample Usage (The Java™ Tutorials > Internationalization > Working with Text)] #code{{ int code = ((Integer) spinner.getValue()).intValue(); //char[] ca = Character.toChars(code); String str = new String(Character.toChars(code)); }} ---- [http://mojikiban.ipa.go.jp/download.html IPAmj明朝]と[http://ipafont.ipa.go.jp/ IPAex明朝フォント]がインストールされている場合、その文字の形の違いを比較することができます。 - [http://mojikiban.ipa.go.jp/download.html IPAmj明朝フォントダウンロード | IPA 文字情報基盤] - [http://mojikiban.ipa.go.jp/1300.html IPAmj明朝フォント | 文字情報基盤整備事業] - [http://ipafont.ipa.go.jp/ IPAexフォント/IPAフォント] * 参考リンク [#ga82bd73] - [[Fontのアウトラインを取得して文字列の内部を修飾する>Swing/LineSplittingLabel]] - [http://f.hatena.ne.jp/NAOI/20130411131759 IPAmj明朝とIPAex明朝で形の違う字 NAOI's fotolife - 20130411131759] * コメント [#td71f10f] #comment #comment