2017-05-10 11 views
0

IMPJButtonを使って別のクラスからJFrameを開く方法私が使って瞬間アクションリスナー

ort java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.sound.sampled.*; 
import java.util.Scanner; 
import java.io.*; 
import java.net.*; 


public class Menu extends JFrame implements ActionListener 

{ 

     private JButton btn = new JButton("start now"); 

     public Menu()throws Exception 
     { 
      JFrame os = new JFrame(); 
      os.add(btn); 
      btn.setPreferredSize(new Dimension(5, 10)); 

      btn.addActionListener(this); 

      os.setSize(822,547); 
      os.setBounds(550,300, 700,459); 
      os.setVisible(true); 
      os.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      Container cp = os.getContentPane();    
      JPanel endmessage = new JPanel(); 

      JLabel mes = new JLabel(); 
      mes.setIcon (new ImageIcon("backgroundMenu.png")); 

      cp.add(endmessage); 
      endmessage.add(mes); 
      os.setVisible(true); 

      } 


    public void actionPerformed(ActionEvent e)  
     { 
      if (e.getSource() == btn) 
      { 
      SpaceShipsGamePartThree myFrame = new SpaceShipsGamePartThree(); 
      myFrame.setVisible(true); 

      } 
      } 

     public static void main(String args[])throws Exception  
     { 
      Menu myFrame = new Menu(); 

      } 

    } 

// enter image description hereにリンクされているボタンについて私は、メッセージのエラーを取得:未報告の例外を。捕らえられなければならない、または投げ出されると宣言しなければならない。このクラスはもともとはメニューのため、ゲームの主要部分にリンクすることができます。

+0

誰かがスローして例外を宣言していますが、これを 'catch'する必要があります。これは、' actionPerformed'メソッドでこれを取得していると仮定しているため、メソッドシグネチャを変更することはできません。 'ActionListener'インターフェース – MadProgrammer

答えて

1

SpaceShipsGamePartThreeが例外をスローしているので、そこで処理する必要があります。 ActionListenerインターフェイスで定義されているため、actionPerformedのメソッドシグネチャを変更できないため、例外をトラップして自分で処理する必要があります。

@Override 
public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == btn) { 
     try { 
      SpaceShipsGamePartThree myFrame = new SpaceShipsGamePartThree(); 
      myFrame.setVisible(true); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

これはちょうどコンソールに例外を出力している間、私はあなたが彼らは何が悪かったのか疑問に残っていないように、少なくともユーザーにエラーメッセージのいくつかの種類を表示するにJOptionPaneのようなものを使用することを検討することをお勧めします

+0

thxは今働いています!! – Riki

関連する問題