2015-02-24 69 views
-3

我正在通過新博士的教程和我有一個意外的錯誤。我試圖做一切Eclipse的建議,但無法弄清楚問題出在哪裏。類別無法申報類型

這是我Main Class

import javax.swing.JFrame; 

class Main { 
public static void main(String args[]) { 

    Gui go = new Gui(); 
    go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    go.setSize(300,200); 
    go.setVisible(true); 

} 
} 

,這是GUI Class 進口java.awt.FlowLayout中; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;

import javax.swing.JFrame; 
import javax.swing.JButton; 
import javax.swing.Icon; 
import javax.swing.ImageIcon; 
import javax.swing.JOptionPane; 


public class Gui extends JFrame { 

    private JButton reg; 
    private JButton custom; 

    public Gui(){ 

     super("The title"); 
     setLayout(new FlowLayout()); 

     reg = new JButton("Regular Button"); 
     add(reg); 

     Icon b = new ImageIcon(getClass().getResource("b.png")); 
     Icon a = new ImageIcon(getClass().getResource("a.png")); 
     custom = new JButton("Custom", b); 
     custom.setRolloverIcon(a); 
     add(custom); 

     HandlerClass handler = new HandlerClass(); 
     reg.addActionListener(handler); 
     custom.addActionListener(handler); 

    } 
    private class HandlerClass implements ActionListener{ 
     public void actionPerformed(ActionEvent event){ 
      JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand())); 
     } 
    } 

} 

感謝兄弟們幫助我!

enter image description here

enter image description here

enter image description here

+2

無法真正看到您的任何代碼。 – Sdyess 2015-02-24 10:24:49

+1

發佈您的主類的代碼。 – mlethys 2015-02-24 10:25:13

+0

你的GUI類的第23行是什麼?請分享您的代碼。 – 2015-02-24 10:29:04

回答

0

您已經發布了幾個不同的蹤跡與不同的行號的錯誤,但代碼似乎已經搬來搬去。該錯誤本身是在ImageIcon的構造函數中討論NullPointerException。與JButton沒有任何關係,因此標籤有誤導性。

基本上你正在查找b.png和a.png的圖像位置。如果這兩個文件不存在,那麼你會得到像你一樣的運行時異常。快速解決方案是將這兩個圖像添加到項目中,以便找到它們。

更強大的解決方案是處理異常並輸出更有意義的錯誤,或者只是在gui上沒有圖標的情況下繼續執行。