我制作了一个摇摆应用程序,我需要根据需要塑造窗口。
为此,我制作了一个相当于我想要的形状的多边形,然后调用
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
如果使用JDK 6则
com.sun.awt.AWTUtilities.setWindowShape(w, polygon);
它在Windows上运行完美,但是当我在Mac上尝试它时,窗口形状功能不会创建任何形状,它只显示完整的窗口
那我该怎么办?
答案 0 :(得分: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)
Google针对该异常进行的一些研究为您提供了答案,OSX不支持此方法。由于目前JDK7不适用于OSX,我们不能说它是否适用于JDK7。因此,目前在OSX上没有开箱即用的解决方案 - 除非你自己扩展框架。
<强>更新强>
要完成答案:在OSX上的JDK7中,到2012年10月仍然不支持
答案 1 :(得分:2)
Mac上的Java 7仍然不支持。