忽略示例代码,Netbeans或更重要的是Java输出的“其他”编译器问题2条警告
C:\Users\Shane Whitehead\Documents\NetBeansProjects\JavaApplication28\src\javaapplication28\MenuPrincipal.java:8: warning: AWTUtilities is internal proprietary API and may be removed in a future release
import com.sun.awt.AWTUtilities;
C:\Users\Shane Whitehead\Documents\NetBeansProjects\JavaApplication28\src\javaapplication28\MenuPrincipal.java:30: warning: AWTUtilities is internal proprietary API and may be removed in a future release
AWTUtilities.setWindowOpaque(Frame, false);
^
2 warnings
这些试图告诉您,您已经使用了私有API,该API将来可能会删除,并且如果您使用的是Java 7,则实际上不再需要该A??PI.
更新
现在,根据您的示例,您的代码将可以编译,但可能无法在6u10以下的Java版本上运行.您应该考虑使用一些反射来克服API(AWTUtilities)不存在的情况,例如…
public static void setOpaque(Window window, boolean opaque) {
try {
Class> awtUtilsClass = Class.forName("com.sun.awt.AWTUtilities");
if (awtUtilsClass != null) {
Method method = awtUtilsClass.getMethod("setWindowOpaque", Window.class, boolean.class);
method.invoke(null, window, opaque);
}
} catch (Exception exp) {
}
}
您也可以使用类似…
public static boolean supportsPerAlphaPixel() {
boolean support = false;
try {
Class> awtUtilsClass = Class.forName("com.sun.awt.AWTUtilities");
support = true;
} catch (Exception exp) {
}
return support;
}
为了确定是否可以使用透明性并做出是否要运行的决定…例如
根据反馈进行了更新
Exception in thread "main" java.lang.UnsupportedClassVersionError: DoraditosPatt y/main : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
这意味着…
>您尝试在项目中包含的类已使用更高版本的Java进行了编译(已使用Java 7进行了编译,但是您尝试将其编译为Java 6)
>您已经使用Java 7编译了项目,但正在尝试在Java 6下运行它
或类似的例子