2011-12-12 158 views
0

我做了一個swing應用程序,我需要根據需要對窗口進行塑造。所以爲了這個目的,我製作了一個相當於我想要的形狀的多邊形,然後調用方法,通過這個方法,一個框架以自定義的形狀創建。Java代碼在Mac OS X上無法正常工作

final Window w = new TestFrame(); 
w.setVisible(true); 
Polygon polygon=new Polygon(); 
polygon.addPoint(10,0); 
polygon.addPoint(0,10); 
polygon.addPoint(0,573); 
polygon.addPoint(10,583); 
polygon.addPoint(570,583); 
polygon.addPoint(580,573); 
polygon.addPoint(580,545); 
polygon.addPoint(720,545); 
polygon.addPoint(730,535); 
polygon.addPoint(730,90); 
polygon.addPoint(720,80); 
polygon.addPoint(580,80); 
polygon.addPoint(580,10); 
polygon.addPoint(570,0); 
w.setShape(polygon);  //method in jdk7 

如果使用JDK 6然後

com.sun.awt.AWTUtilities.setWindowShape(w, polygon); 

它運行完美的Windows版本,但同時,我嘗試在Mac然後窗形函數不創造任何形狀,它只顯示

整個窗口

那麼我該怎麼做?

回答

5

恕我直言,你應該得到一個例外,這將是有用的粘貼在這裏。當我運行的代碼,我得到以下異常:

Exception in thread "main" java.lang.UnsupportedOperationException: The PERPIXEL_TRANSPARENT translucency kind is not supported 
at com.sun.awt.AWTUtilities.setWindowShape(AWTUtilities.java:258) 
at de.project.test.WindowShape.main(WindowShape.java:31) 

一些研究谷歌該異常給你答案,這種方法不支持OSX。由於目前JDK7不在OSX中,所以我們不能說它是否可以與JDK7一起使用。所以目前在OSX上沒有開箱即用的解決方案 - 最好是自己擴展一個框架。

更新:

要完成答案:在JDK7的OSX,它仍然不支持高達至10月,2012

2

它仍然無法與Java 7的Mac上的支持。

相關問題