Java代码在Mac OS X上不起作用

时间:2011-12-12 09:32:21

标签: 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

如果使用JDK 6则

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

它在Windows上运行完美,但是当我在Mac上尝试它时,窗口形状功能不会创建任何形状,它只显示完整的窗口

那我该怎么办?

2 个答案:

答案 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仍然不支持。