【发布时间】:2018-05-25 02:26:59
【问题描述】:
我是 Java 新手,我的游戏主菜单有问题。我已经关注了互联网上的信息,但我仍然无法修复它。错误在我的主要形式中,public class Screen extends JFrame implements ActionListener { 和 Start fram2 = new Start(); 请帮助我
这是我的代码: -- 主窗体
package screen;
//import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//import java.awt.event.InputEvent;
//import java.awt.event.KeyEvent;
import javafx.event.ActionEvent;
public class Screen extends JFrame implements ActionListener {
public Screen() {
JFrame f = new JFrame("Menu Demo");
f.setSize(800, 600);
f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
JMenuBar jmb = new JMenuBar();
JMenu jmFile = new JMenu("File");
JMenuItem jmiOpen = new JMenuItem("Create Player");
JMenuItem jmiClose = new JMenuItem("Close");
JMenuItem jmiExit = new JMenuItem("Exit");
JPanel p = new JPanel();
//Container c = getContentPane();
JButton start = new JButton("START!");
JButton instructions = new JButton ("INSTRUCTIONS");
JButton close = new JButton("CLOSE!");
jmFile.setMnemonic(KeyEvent.VK_F);
jmiOpen.setMnemonic(KeyEvent.VK_O);
jmiClose.setMnemonic(KeyEvent.VK_S);
jmiExit.setMnemonic(KeyEvent.VK_X);
jmiOpen.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_O,
InputEvent.CTRL_DOWN_MASK
));
jmiClose.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_S,
InputEvent.CTRL_DOWN_MASK
));
jmiExit.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_X,
InputEvent.CTRL_DOWN_MASK
));
jmFile.add(jmiOpen);
jmFile.add(jmiClose);
jmFile.addSeparator();
jmFile.add(jmiExit);
jmb.add(jmFile);
p.add(start);
p.add(instructions);
instructions.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
if (e.getSource() == instructions){
setVisible(false);
//Start fram2 = new Start();
Start fram2 = new Start();
dispose();
}
}
});
p.add(close);
f.add(p,"South");
start .addActionListener((ActionListener) this);
instructions.addActionListener((ActionListener) this);
close .addActionListener((ActionListener) this);
// JMenu jmOptions = new JMenu("Options");
// JMenu a = new JMenu("A");
// JMenuItem b = new JMenuItem("B");
// JMenuItem c = new JMenuItem("C");
JMenuItem d = new JMenuItem("D");
// a.add(b);
//a.add(c);
// a.add(d);
// jmOptions.add(a);
JMenu e = new JMenu("E");
e.add(new JMenuItem("F"));
e.add(new JMenuItem("G"));
JMenu jmHelp = new JMenu("Help");
JMenuItem jmiAbout = new JMenuItem("About");
jmHelp.add(jmiAbout);
jmb.add(jmHelp);
jmiOpen.addActionListener((ActionListener) this);
jmiClose.addActionListener((ActionListener) this);
jmiExit.addActionListener((ActionListener) this);
d.addActionListener((ActionListener) this);
jmiAbout.addActionListener((ActionListener) this);
f.setJMenuBar(jmb);
f.setVisible(true);
JLabel img = new JLabel(new ImageIcon("D:/SpaceShip.jpg"));
f.add(img,"North");
p.setLayout(new FlowLayout());
}
public static void main(String[] args) {
new Screen();
}
public void actionPerformed(ActionEvent arg0) { // try to use actionPerformed(java.awt.event.ActionEvent) but still has error
// Do something here
}
}
--二等
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Start extends JFrame{
JFrame fram2 = new JFrame("About");
public Start(){
setSize(800,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel jl1 = new JLabel (" ABOUT THE DEVELOPER ");
JLabel jl2 = new JLabel ("3 Mahasiswa Sistem Informasi dari Universitas Tarumanagara");
JLabel jl3 = new JLabel ("Mereka adalah : ");
JLabel jl4 = new JLabel (" \t1. Meiliana Setiady, 825160021");
JLabel jl5 = new JLabel (" \t2. James Natasalim, 825160023");
JLabel jl6 = new JLabel (" \t3. Maya Retnosari, 825160030");
JLabel jl7 = new JLabel (" Selamat menikmati permainan dari kami ^__^");
JPanel p2 = new JPanel();
p2.add(jl1);
p2.add(jl2);
p2.add(jl3);
p2.add(jl4);
p2.add(jl5);
p2.add(jl6);
p2.add(jl7);
getContentPane().add(p2);
//fram2.add(p2);
//fram2.setSize(800,600);
setVisible(true);
}
}
在第一种形式的包中仍然有错误:(import java.awt.event.ActionListener; 导入 java.awt.event.InputEvent; 导入 java.awt.event.KeyEvent;) 并在 'instructions.addActionListener(new ActionListener()' 行中
红线说: java.lang.ExceptionInInitializerError 原因:java.lang.RuntimeException:无法编译的源代码 - 找不到符号 符号:类 ActionListener 位置:类 java.awt.event 在 screen.Screen.(Screen.java:10) 线程“main”Java 中的异常返回:1 构建失败(总时间:1 秒)
我错过了什么吗?
【问题讨论】:
-
是的,你错过了发布你的错误
-
嗯.. 我已经发布了我的错误,这些都在上面。只有行'public class Screen extends JFrame implements ActionListener {'和行'Start fram2 = new Start();'有红色标志
-
红线说什么?
-
java.lang.ExceptionInInitializerError 原因:java.lang.RuntimeException:无法编译的源代码 - screen.Screen 不是抽象的,并且不会覆盖 java 中的抽象方法 actionPerformed(java.awt.event.ActionEvent) .awt.event.ActionListener at screen.Screen.
(Screen.java:17) 线程“main”Java 中的异常返回:1 BUILD FAILED(总时间:1 秒)
标签: java eclipse swing user-interface netbeans