지식쌓기
JLabel에 한글 폰트로 <html>사용시 문제
바나나쥬스
2009. 4. 8. 17:34
JLabel에 한글 폰트로 설정한 경우 (아시아 폰트)
Html Tag를 사용하여 영문을 쓰는경우 descent가 잘리는 경우가 발생한다
한글 XP에서 기본적으로 Label.font가 Gulim, Plain, 12가 되는데
이때 영문리소스에 html을 적용하면 문제가 생긴다
아래 예제를 실행하면
결과가 다음과 같다
Html을 쓴 경우와 안쓴경우 string이 그려지는 baseline이 다른것을 알수 있다.
하지만 XP에서는 descent부분이 잘리고 Mac에서는 잘리지 않는다
줄바꿈 편하게 할려고 <html>을 쓰곤 하는데...
이럴땐 걍 JTextArea를 쓰자 -ㅅ-;
Html Tag를 사용하여 영문을 쓰는경우 descent가 잘리는 경우가 발생한다
한글 XP에서 기본적으로 Label.font가 Gulim, Plain, 12가 되는데
이때 영문리소스에 html을 적용하면 문제가 생긴다
아래 예제를 실행하면
Font f = new Font("Gulim", Font.PLAIN, 12);
UIManager.put("Label.font", f);
JFrame frame = new JFrame();
JPanel panel = new JPanel();
String str = "Layout";
JLabel label = new JLabel(str);
label.setBorder(BorderFactory.createLineBorder(Color.RED));
JLabel htmlLabel = new JLabel("<html>"+str+"</html>");
htmlLabel.setBorder(BorderFactory.createLineBorder(Color.RED));
panel.add(label);
panel.add(htmlLabel);
frame.add(panel);
frame.pack();
frame.setVisible(true);
UIManager.put("Label.font", f);
JFrame frame = new JFrame();
JPanel panel = new JPanel();
String str = "Layout";
JLabel label = new JLabel(str);
label.setBorder(BorderFactory.createLineBorder(Color.RED));
JLabel htmlLabel = new JLabel("<html>"+str+"</html>");
htmlLabel.setBorder(BorderFactory.createLineBorder(Color.RED));
panel.add(label);
panel.add(htmlLabel);
frame.add(panel);
frame.pack();
frame.setVisible(true);
결과가 다음과 같다
Html을 쓴 경우와 안쓴경우 string이 그려지는 baseline이 다른것을 알수 있다.
하지만 XP에서는 descent부분이 잘리고 Mac에서는 잘리지 않는다
줄바꿈 편하게 할려고 <html>을 쓰곤 하는데...
이럴땐 걍 JTextArea를 쓰자 -ㅅ-;