DEV*_*RMA 0 java macos swing awt shape
我做了一个摆动应用程序,我需要根据需要塑造窗户.
所以为了这个目的,我制作了一个相当于我想要的形状的多边形,然后调用
setShape(myPloygon)
方法,通过该方法创建一个自定义形状的框架.
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
Run Code Online (Sandbox Code Playgroud)
如果使用JDK 6那么
com.sun.awt.AWTUtilities.setWindowShape(w, polygon);
Run Code Online (Sandbox Code Playgroud)
它在Windows上运行完美,但是当我在Mac上尝试它时,窗口形状功能不会创建任何形状,它只显示完整的窗口
所以我该怎么做?
恕我直言,你应该得到一个例外,将它粘贴在这里是有用的.当我运行代码时,我得到以下异常:
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)
Run Code Online (Sandbox Code Playgroud)
google中针对该异常的一些研究为您提供了答案,OSX不支持此方法.由于目前JDK7不适用于OSX,我们不能说它是否适用于JDK7.因此,目前在OSX上没有开箱即用的解决方案 - 除非您自己扩展框架.
更新:
要完成答案:在OSX上的JDK7中,到2012年10月仍然不支持它
归档时间: |
|
查看次数: |
883 次 |
最近记录: |