JFrame 내부의 JLabel에 일부 고화질 유니 코드 문자를 추가하려고하지만 알려진 지원되는 글꼴을 사용함에도 불구하고 상자로만 표시됩니다. 그러나이 동일한 문자를 Eclipse 콘솔에 인쇄하면 잘 보입니다. 여기 내 코드는 "프레임"이 내 JFrame이고 "textField1"이 내 JLabel입니다. 모나코 글꼴 이클립스 콘솔이 사용하는 것과 동일한 글꼴이며,이 유니 코드 문자를 지원하기 위해 알고있다 : 나는 많은 다른 글꼴로 JLabel의 설정을 시도했습니다유니 코드 특수 문자가 Java 콘솔에 있지만 스윙에는 나타나지 않습니다.
JFrame frame = new JFrame();
JLabel textField1 = new JLabel();
frame.add(textField1);
frame.setFocusable(true);
frame.setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
frame.setPreferredSize(new Dimension(1000, 500));
frame.requestFocusInWindow();
frame.textField1.setFont(new Font("Monaco", Font.PLAIN, 11));
frame.textField1.setText("\uD83C\uDF2D");
frame.pack();
frame.setVisible(true);
,하지만 변경이 모두의 상대적인 모양입니다 "누락 된 문자"상자. 그러나이 인쇄 할 경우 :
System.out.println("\uD83C\uDF2D");
예상대로 문자를 콘솔에서 인쇄합니다. Swing에서 이러한 심볼이 작동하지 않도록 인코딩 문제가 있습니까?
:
이
위의 출력뿐만 아니라, 사용자가 지정된 유니 코드 문자 (들)을 지원하는 모든 글꼴을 선택할 수있는 GUI를 표시를 생성하는 소스 코드 가장 일반적인 원인은 글꼴 표시가 문자 표시를 지원하지 않는다는 것입니다. – MadProgrammer@MadProgrammer 예.하지만이 글꼴이 문자를 지원하는지 100 % 확신합니다. 나는 그것을 완벽하게 표현했다. 나는이 문자를 쓸모없는 것으로 지원하는 것으로 알려진 여러 개의 다른 글꼴을 시도했다. – zooksman
모나코 글꼴에 문자 ([ 'HOT DOG'(U + 1F32D))] (http://www.fileformat.info/info/unicode/char/1f32d/index.htm)가 있다고 생각하지 않습니다. 콘솔이 특수 문자를 표시하기 위해 다른 글꼴로 자동 전환 될 가능성이 큽니다. 해당 문자를이 페이지에 붙여 넣으면 작동하지 않습니다. https://www.myfonts.com/fonts/apple/monaco/ – Andreas