Java-код не работает в Mac OS X - PullRequest
0 голосов
/ 12 декабря 2011

Я сделал приложение для свинга, где мне нужно придать форму окнам, которые я хочу.

Итак, для этой цели я сделал многоугольник, который эквивалентен моей форме желаний, а затем вызвал 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);

Он отлично работает на окнах, но, хотя я пробую его на Mac, функция формы окна не создает никакой формы, она показывает только полное окно

Так что мне делать?

Ответы [ 2 ]

5 голосов
/ 12 декабря 2011

ИМХО, вы должны получить исключение, и было бы полезно вставить это здесь. Когда я запускаю код, я получаю следующее исключение:

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 - за исключением того, что вы самостоятельно расширяете фрейм.

Обновление:

Для завершения ответа: в JDK7 на OSX он все еще не поддерживается до октября 2012 года

2 голосов
/ 12 сентября 2012

Это все еще не поддерживается Java 7 на Mac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...