Windows操作系统,别人的机子用着没事,为什么我的机器一装上iReport就报如下错误,我很疑惑,还请各位高手帮忙解惑:
下面是运行iReport安装目录下bin的startup.bat文件报的错误:Exception in thread "main" java.lang.NullPointerException
        at javax.swing.border.EmptyBorder.<init>(Unknown Source)
        at com.sun.java.swing.plaf.windows.WindowsTableHeaderUI$XPDefaultRenderer.getTableCellRendererComponent(Unknown
Source)
        at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderRenderer(Unknown Source)
        at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(Unknown Source)
        at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(Unknown Source)
        at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at javax.swing.ScrollPaneLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at javax.swing.JRootPane$RootLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at javax.swing.JComponent.getPreferredSize(Unknown Source)
        at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
        at java.awt.Container.preferredSize(Unknown Source)
        at java.awt.Container.getPreferredSize(Unknown Source)
        at java.awt.Window.pack(Unknown Source)
        at it.businesslogic.ireport.gui.GroupsDialog.initComponents(GroupsDialog.java:264)
        at it.businesslogic.ireport.gui.GroupsDialog.<init>(GroupsDialog.java:67)
        at it.businesslogic.ireport.gui.MainFrame.<init>(MainFrame.java:400)
        at it.businesslogic.ireport.gui.MainFrame.main(MainFrame.java:7110)

解决方案 »

  1.   

    这是JDK的BUG,请看解释:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6428968
      

  2.   

    我看了一下,但不懂应该怎么用,您的意思是不是修改ireport中的jar文件啊?
      

  3.   

    User workarounds:
    1. Change from XP custom look and feel to standard XP or Windows Classic L&F
    2. Change application properties to "Run this program in compatibility mode for Windows 2000."Code workarounds:
    No way to workaround without modifying Swing code. But one of these things could be corrected:1. ThemeReader.getThemeMargins(..) guarantees to return non-null
    2. Skin.getContentMargin() guarantees to return non-null
    3. XPDefaultRenderer's call to getContentMargin() should handle null and pass in some legit Insets to EmptyBorder.
      

  4.   

    我是做web开发的,对java的GUI知识不太懂,您这有现成的例子吗?那个我有点看不懂。先谢谢了!
      

  5.   

    就是你把系统的主题换成WindowsXP标准的主题风格或经典的主题风格。不要用自定义的主题。