Java FX外观和感觉的问题
我正在查看Deitel和Deitel的书中有关Java编程的一些示例,其中第一个示例是一个非常简单的Swing显示。因此,该代码片段:Java FX外观和感觉的问题
import javax.swing.*;
public class cdea {
public static void main(String args[]){
JOptionPane.showMessageDialog(null,"\"Welcome to Java Programming!\"");
System.exit(0);
//end method main
}
}
我用
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
的程序读取关于一个如何获得原生UI的外观和感觉一些东西。但是,当我将这添加到我的主要方法时,它会给我一些错误。具体做法是:
在该行 多个标记 - 未处理的异常类型IllegalAccessException - 未处理的异常类型InstantiationException - 未处理的异常类型的ClassNotFoundException - 未处理的异常类型UnsupportedLookAndFeelException
然而,当我使用它的一部分的try/catch异常循环(就是它被称为?)的详细信息Getting java applications to look native on windows - how?,我得到程序正常运行。
任何人都可以用简单的语言告诉我为什么这样吗?如同为什么我无法直接获得系统的外观和感觉;为什么我必须在异常处理中使用它?我是Java的新手,一般都是面向对象,所以如果我太简单了,我很抱歉。
Java有两种主要类型的异常:检查异常和未检查异常。
您需要有处理选中的例外的代码。作为一般规则,方法的文档将列出哪些检查了它可能抛出的异常。
在这种情况下,UIManager.setLookAndFeel被描述为这样的:
public static void setLookAndFeel(String className)
throws ClassNotFoundException,
InstantiationException,
IllegalAccessException,
UnsupportedLookAndFeelException
有两个选择:手柄每个这些异常在单独的catch块,或在映入异常单个catch块处理它们。在这种情况下,我相信可以在一个区块内处理它,因为Swing会默认回到跨平台的外观和感觉,如果它真的不能更改L & Fs。
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
// Any handling you want to do here, possibly logging
// Optionally, you could just do... nothing.
}
注:还有第二个setLookAndFeel
方法抛出只是一个异常类型,但你不使用的那一个。
谢谢你的清晰解释! :)所以这基本上意味着我必须始终查看Java库中的特定方法是否在使用它之前检查了异常? – drachenfels 2010-05-14 23:13:10
不幸的是,是的。如果你使用IDE,它可能有一个快捷方式为你添加一个try/catch块(在Eclipse中,它是Alt-Shift-Z,然后是弹出菜单中的第一个选项)。 – Powerlord 2010-05-15 14:54:11