2015-02-24 3 views
-3

Я пройду учебники thenewboston, и у меня есть непредвиденная ошибка. Я пытался сделать все, что предлагает 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

+1

Отправьте свой код своего основного класса. – mlethys

+0

Какова 23-я строка вашего графического интерфейса? пожалуйста, поделитесь своим кодом. –

ответ

0

Вы отправили несколько различных stacktraces с ошибкой на разные номера строк, но код, кажется, переехал вокруг. Сама ошибка говорит об исключении NullPointerException в конструкторе для ImageIcon. На самом деле это не имеет ничего общего с JButton, поэтому теги вводят в заблуждение.

В основном вы ищете местоположение изображения b.png и a.png. Если эти два файла не существуют, вы получите исключение, как у вас. Быстрое исправление заключается в том, чтобы добавить эти два изображения в проект, чтобы они были найдены.

Более надежное решение должно было бы обрабатывать исключение и выводить более значимую ошибку или просто продолжать без значка на gui.

Смежные вопросы