본문 바로가기

LANGUAGES, METHODLOGY

[JAVA] 자바 스윙 폰트 변경하기

오늘은 프로젝트를 만지는데 기능적인 면보다는 그냥 겉이나 좀 바꿔보자 (사실 회의때 말이 나왔던것도 그쪽이어서) 해서


버튼으로만 휑하니 나와있던 메뉴 버튼들을 드롭다운 메뉴로 바꿔주고


추가적으로 매우 구식 프로그램처럼 보이던 원인인 프로그램 폰트를 대부분 수정해주었다.


부분적으로 고치는 방법도 찾았고 전체적으로 고치는 방법도 찾았는데, 


부분적으로 고치는 방법으로 JMenu와 JMenuItem 폰트와 JFileChooser 를 수정했고


전체적으로 고치는 방법으로 알림창인 JOptionPane 의 폰트를 수정해 주었다.



부분적으로는 우선 폰트를 f1 = new Font("맑은 고딕", Font.PLAIN, 13); 식으로 선언해 주었을 때


jmenu.setFont(f1);


jmenuitem.setFont(f1); 


식으로 메뉴와 메뉴에 속하는 아이템들의 폰트를 수정할 수 있었다.



JFileChooser 같은 경우에는 구글링을 통해 찾은 함수 를 가져다가 손쉽게 변경해 줄 수 있었는데


먼저 setFileChooserFont 라는 함수를 내부에 선언하고 함수 내부에는 원하는 폰트 설정, 


JFileChooser 선언 아래에 setFileChooserFont(jfilechooser.getComponents());


라고 선언함으로 파일 선택창 전부를 말끔히 고쳐줄 수 있었다.


마지막으로 JOptionPane 같은 경우에는 위 방법들보다 훨씬 손쉽고 전체적으로 적용되서 손이 덜가는 장점이 있었는데


이를 JOptionPane 말고 다른 항목들에도 적용할 수 있는지는 모르겠다.


UIManager.put("OptionPane.messageFont", f1);

UIManager.put("OptionPane.buttonFont", f1);


이 두문장 만으로 UI에서 생성하는 JOptionPane 같은 경우들에는 모두 정해준 폰트대로 출력을 하게 된다.


어쨌든 오늘 작업으로 하는것 없고 구려보이기까지 하던 프로그램이


하는건 없어도 있어보이기라도 하는 프로그램이 됐다. 근데 생각보다


둘의 차이가 어마어마 하다는걸 명심해야만 한다.