2011-03-18 3 views
1

, 내 애플릿은 다음과 같습니다 브라우저에서 screenshot AppletViewer자바 애플릿 : 없음 앤티 앨리어싱 브라우저에서 글꼴 (그러나 애플릿 viewer에) 애플릿 뷰어에서

, 내 애플릿은 다음과 같습니다 : 당신으로 screenshot browser

폰트가 앤티 알리아싱되지 않았 음을 알 수 있습니다. 또한 배경색이 다릅니다. 그리고 모든 텍스트는 오른쪽에 잘려져 있습니다.

그게 뭐야?

직접 시도 할 수도 있습니다. here. here에서


나는이 코드를 사용하려 :

System.setProperty("awt.useSystemAAFontSettings","on"); 
System.setProperty("swing.aatext", "true"); 

을하지만은이 예외가 발생합니다

java.security.AccessControlException: access denied (java.util.PropertyPermission awt.useSystemAAFontSettings write) 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) 
    at java.security.AccessController.checkPermission(AccessController.java:546) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
    at java.lang.System.setProperty(System.java:742) 
    at applets.Termumformungen$in$der$Technik_08_Ethanolloesungen.Applet.init(Applet.java:51) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1640) 
    at java.lang.Thread.run(Thread.java:680) 
Exception: java.security.AccessControlException: access denied (java.util.PropertyPermission awt.useSystemAAFontSettings write) 
+0

나는 * 애플릿을 초기화 할 수 없습니다. * 오류 메시지. (OpenJDK 1.6.0_20 (IcedTea6 1.9.7), Firefox, OpenSUSE 64 비트) –

+0

Opera가 동일합니다. 애플릿 뷰어에서보기에는 (회색) 좋지만 실제로 스크린 샷에있는 내용이 표시되지는 않습니다. –

+0

@ Paŭlo : 어, 재미 있네.. 오류가있어? 오류 콘솔은 무엇을 말합니까? 어쨌든 애플릿을 초기화 할 수없는 이유를 말하는 어딘가의 출력이 있어야합니다 :) : – Albert

답변

2

그것은 각각에 대해이 같은 paint 방법을 재정 의하여 작동합니다 구성 요소에서 앤티 앨리어싱을 사용하려는 위치 :

static void activateAntiAliasing(Graphics g) { 
    try { 
     Graphics2D g2d = (Graphics2D)g; 

     // for antialiasing geometric shapes 
     g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
           RenderingHints.VALUE_ANTIALIAS_ON); 

     // for antialiasing text 
     g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, 
           RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 

     // to go for quality over speed 
     g2d.setRenderingHint(RenderingHints.KEY_RENDERING, 
           RenderingHints.VALUE_RENDER_QUALITY); 
    } 
    catch(ClassCastException ignored) {} 
} 

@Override public void paint(final Graphics g) { 
    activateAntiAliasing(g); 
    super.paint(g); 
} 
+0

페인트 할 때마다 정품 인증을 받아야합니까? 또는 한 번만 충분할 것인가? –