import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.text.Normalizer; import java.util.Formatter; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class NormalizerSample1 { // がぎぐげご private static final String gagi1 = "がぎぐげご"; private static final String gagi2 = new String(new char[]{'\u304b', '\u3099', '\u304d', '\u3099', '\u304f', '\u3099', '\u3051', '\u3099', '\u3053', '\u3099'}); private Font font = new Font("san-serif", Font.BOLD, 12); private GridBagConstraints constraints = new GridBagConstraints(); public NormalizerSample1() { JFrame frame = new JFrame(); JPanel panel = new JPanel(); GridBagLayout layout = new GridBagLayout(); constraints.anchor = GridBagConstraints.WEST; constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.ipadx = 10; constraints.ipady = 5; panel.setLayout(layout); showString(panel, layout, "NFC:", Normalizer.normalize(gagi2, Normalizer.Form.NFC)); showString(panel, layout, "NFD:", Normalizer.normalize(gagi1, Normalizer.Form.NFD)); showString(panel, layout, "NFKC:", Normalizer.normalize(gagi2, Normalizer.Form.NFKC)); showString(panel, layout, "NFKD:", Normalizer.normalize(gagi1, Normalizer.Form.NFKD)); frame.add(panel); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } private void showString(JPanel panel, GridBagLayout layout, String title, String text) { constraints.gridwidth = 1; JLabel titleLabel = new JLabel(title); layout.setConstraints(titleLabel, constraints); titleLabel.setFont(font); panel.add(titleLabel); for (int i = 0; i < text.length(); i++) { if (i == text.length() - 1) { constraints.gridwidth = GridBagConstraints.REMAINDER; } Formatter formatter = new Formatter(new StringBuilder()); JLabel label = new JLabel(formatter.format("%c", text.charAt(i)).toString()); layout.setConstraints(label, constraints); label.setFont(font); panel.add(label); } constraints.gridwidth = 1; titleLabel = new JLabel(""); layout.setConstraints(titleLabel, constraints); panel.add(titleLabel); for (int i = 0; i < text.length(); i++) { if (i == text.length() - 1) { constraints.gridwidth = GridBagConstraints.REMAINDER; } Formatter formatter = new Formatter(new StringBuilder()); JLabel label = new JLabel(formatter.format("U+%4h", text.charAt(i)).toString()); layout.setConstraints(label, constraints); label.setFont(font); panel.add(label); } } public static void main(String[] args) { new NormalizerSample1(); } }