Fedora Core 3 Java 한글 인코딩 문제...

지리즈의 이미지

M$ 98폰트를 사용하고자
GulimBatangFonts4JDK
의 문서대로, jre의 lib 및의 폰트를 수정했습니다만...
eclipse에서 작성된 javaSwing을 실행하면,
한글이 깨져 나옵니다...

제 생각에는 fonts.properties.ko파일에서 일부를 수정해야 할 듯 하는데..
무엇으로 해줘야 하는지 잘 모르겠습니다.

혹시 해결하신 분은 알려 주시면 감사드리겠습니다.

ps) 그러나 저러나 Gentoo.or.kr의 링크는 스패머에게 당했군요.

File attachments: 
첨부파일 크기
Image icon java.png120.92 KB
익명 사용자의 이미지

지리즈 wrote:
M$ 98폰트를 사용하고자
GulimBatangFonts4JDK
의 문서대로, jre의 lib 및의 폰트를 수정했습니다만...
eclipse에서 작성된 javaSwing을 실행하면,
한글이 깨져 나옵니다...

제 생각에는 fonts.properties.ko파일에서 한글 인코딩 관련 일부를 수정해야 할 듯 하는데..
무엇으로 해줘야 하는지 잘 모르겠습니다.

혹시 해결하신 분은 알려 주시면 감사드리겠습니다.

ps) 그러나 저러나 Gentoo.or.kr의 링크는 스패머에게 당했군요.

지리즈의 이미지

참고를 위해 스샷 첨부합니다.

Hello world swing이고,
eclipse에서는 한글입력이 잘되는데,
실행된 java swing에서는
한글이 네모로 나오고,
창의 메뉴역시 그렇습니다.

현재
사정이 있어서 "LANG=ko_KR.UTF-8"을 사용중입니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트

There is no spoon. Neo from the Matrix 1999.

atie의 이미지

이 문서도 참조해 보시기 바랍니다.

다른 방법으로는 코드 상에서 사용할 폰트를 제어할 수도 있습니다.

Font defaultFont = new Font("Gulim", Font.PLAIN , 12);
UIManager.put("MenuItem.font", new FontUIResource(defaultFont) );

이렇게 하면 MenuItem 폰트는 굴림, 보통, 크기 12를 쓰겠다는 것인데, 이 방법을 써서 Swing 프로그램 시작 시에 모든 폰트를 변경하려면,

   public static void changeAllSwingFonts(String fontName, int fontType, int fontSize) {
       Object[] objs = UIManager.getLookAndFeel().getDefaults().keySet().toArray();
       for(int i = 0; i < objs.length; i++ ) {
    	   String objStr = (String) objs[i];
    	   if(objStr.toUpperCase().endsWith(".FONT")) {
               Font defaultFont = new Font(fontName, fontType, fontSize);  //이 부분은 static으로 한 번만 지정을 해서 할 수도 있겠죠.
               UIManager.put(objs[i], new FontUIResource(defaultFont) );
           }
       }
   }

이런 method를 만들고, 아래와 같이 적당한 곳에서 호출해 줍니다.
   public static void main(String s[ ]) {
	  changeAllSwingFonts("Gulim", Font.PLAIN , 12);
	  JFrame frame = new JFrame("Font Test");
          ...

제 경우는 영문 locale을 쓰는지라 이렇게 폰트를 제어하는 편이 더 편하더군요.

참고로, 사용 가능한 폰트를 보려면 다음의 코드를 수행해 보십시요.

import java.awt.GraphicsEnvironment;

public class ShowFonts {
   public static void main ( String [] args ) {
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      String[] names = ge.getAvailableFontFamilyNames();
      for ( int i=0; i<names.length; i++ ) {
         System.out.println( names[i] );
      }
   }
}

// 수정,

   public static void changeAllSwingFonts(Font defaultFont) {
       Object[] objs = UIManager.getLookAndFeel().getDefaults().keySet().toArray();
       for(int i = 0; i < objs.length; i++ ) {
    	   String objStr = (String) objs[i];
    	   if(objStr.toUpperCase().endsWith(".FONT")) {
               UIManager.put(objs[i], new FontUIResource(defaultFont) );
           }
       }
   }
한 가지 폰트만 쓸 때는 이렇게 폰트만 받고, 아래처럼 호출하는 것이 나겠군요.
    Font defaultFont = new Font("Gulim", Font.PLAIN , 12); 
    changeAllSwingFonts(defaultFont);

----
I paint objects as I think them, not as I see them.
atie's minipage

지리즈의 이미지

감사드립니다. 잘되네요 :o

There is no spoon. Neo from the Matrix 1999.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.