小鬼
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 :(得分:1)
由于SpaceShipsGamePartThree
抛出异常,您需要在那里处理它。由于您无法更改actionPerformed
的方法签名,因为它是ActionListener
接口定义的,因此您需要捕获异常并自行处理。
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn) {
try {
SpaceShipsGamePartThree myFrame = new SpaceShipsGamePartThree();
myFrame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
虽然这只是将异常打印到控制台,但我建议您考虑使用类似JOptionPane
之类的内容来至少向用户显示某种错误消息,这样他们就不会离开想知道出了什么问题