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方法抛出只是一个异常类型,但你不使用的那一个。

+0

谢谢你的清晰解释! :)所以这基本上意味着我必须始终查看Java库中的特定方法是否在使用它之前检查了异常? – drachenfels 2010-05-14 23:13:10

+0

不幸的是,是的。如果你使用IDE,它可能有一个快捷方式为你添加一个try/catch块(在Eclipse中,它是Alt-Shift-Z,然后是弹出菜单中的第一个选项)。 – Powerlord 2010-05-15 14:54:11