2016-05-07 2 views
-1

Мне нужно использовать функцию этого класса в другом классе в action_performed. Этот код дает мне ошибку.Java-программа Class Menu

public class Menu { 

public void Menu() 
{ 
    try { 
     Image img = ImageIO.read(getClass().getResource("Image1.jpg"));\\to get image 
     Image img1 = ImageIO.read(getClass().getResource("Image2.jpg")); 
     Image img2 = ImageIO.read(getClass().getResource("Image3.png")); 
     Image img3 = ImageIO.read(getClass().getResource("Image4.jpg")); 
     Image img4= ImageIO.read(getClass().getResource("Image5.jpg")); 
     Image img5= ImageIO.read(getClass().getResource("Image6.jpg")); 
     JFrame f1=new JFrame("Menu"); 
     f1.setSize(400,200); 
     f1.setVisible(true); 
     JPanel P1=new JPanel(); 
     P1.setVisible(true); 
     JButton b1=new JButton("Creamy Chocolate Cup"); 
     b1.setIcon(new ImageIcon(img)); 
     b1.add(P1); 
     b1.setVisible(true); 
     P1.add(f1); 

    } catch (IOException ex) { 


    } 







} 
} 

Не могу добавить более подробную информацию, и это все, что я могу сказать Просто скажите, как решить эту проблему как можно быстрее.

ответ

0

Удалить строку:

P1.add(f1); 

Это даст вам java.lang.IllegalArgumentException потому, что вы пытаетесь добавить окно в контейнер. Он должен работать, если вы удалите эту строку.

Однако, ваш код совершенно неверен. Вы добавляете JFrame в JPanel и добавляете JPanel в JButton, это должно быть наоборот.

Например, это будет работать для вас:

 public void Menu() 
    { 

      Image img = ImageIO.read(getClass().getResource("Image1.jpg")); 

      JFrame f1=new JFrame("Menu"); 
      f1.setSize(400,200); 

      JPanel P1=new JPanel(); 
      JButton b1=new JButton("Creamy Chocolate Cup"); 
      b1.setIcon(new ImageIcon(img)); 

      P1.add(b1); 
      f1.add(P1); 
      f1.setVisible(true); 
    }