반응형

요즘 자바의 Graphics을 이용하여, 유틸리티를 만들고 있습니다.


drawImage 함수의 경우 제목 표시줄을 제외하고 


실질적은 Graphics 프레임 영역에서 부터 0,0이 시작됩니다.


그런데 drawString은 제목 표시줄의 영역부터 0,0이 시작됩니다.


그래서 drawString을 0,0내 찍으면 제목표시줄에 가려서 보이지가 않습니다.



그냥 Y 좌표에 대략적으로 +10, +12 정도 주고 사용해도 되겠지만,


자바의 특성상 다른 OS에 갔을때 제목표시줄의 크기가 변할것 같은 찜찜함에 


해결 방법을 찾아봤습니다.


https://stackoverflow.com/questions/45227294/setting-drawstring-so-0-0-is-inside-the-draw-area

에서 해법을 찾았습니다.


기준의 위치를 바꿔주면 됩니다.



  FontMetrics fm = g.getFontMetrics();

    g.translate(0, fm.getAscent());

   

    Font font = new Font ("font/NanumBarunGothic.ttf", Font.PLAIN, fontSize); 

    g.setColor(color);

    g.setFont (font);

    g.drawString(str, x, y);

   

   

    g.translate(0, 0);


위와 같이 기준점을 fm.getAscent() 함수를 이용해 변경해서 drawString 글자를 찍고


다시 원래대로 g.translate(0, 0); 돌려줍니다. 


위와 같은 방법으로 문제를 해결했습니다.




반응형

+ Recent posts