我是一名15岁的新朋友。我目前正在尝试使用java独立开发Rock Paper Scissors游戏。我认为在这个项目上工作将是一个帮助我学习java及其基础知识的通知经验。我对java编程语言有些新意,所以请不要批评我,我正在通过反复试验慢慢学习。对于这个特定的项目,我决定使用Eclipse,因为我比其他IDE更喜欢它的用户界面。无论如何,我决定实施JPanel以使游戏更具视觉效果。我的代码如下所示:从我的eclipse项目中复制并粘贴:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public abstract class prompt extends JPanel implements ActionListener {
public static void main(String []args) {
JPanel panel = new JPanel();
JButton rockButton = new JButton("ROCK");
JButton scissorsButton = new JButton("SCISSORS");
JButton paperButton = new JButton("PAPER");
JFrame choicePrompt = new JFrame("Rock, Paper, Scissors Game");
choicePrompt.add(panel);
choicePrompt.setSize(300, 300);
choicePrompt.setVisible(true);
panel.add(rockButton);
panel.add(scissorsButton);
panel.add(paperButton);
}
}
请阅读:我将提示类设为抽象类,因为它显然修复了错误。但是,我正在寻找的是一种方法来添加,当在JPanel上点击摇滚,纸张或剪刀按钮时,它会记录该点击。我知道这可以用鼠标或ActionListener实现,但我无法自己弄明白。所有其他的“shtuff”就像我自己可以做的计算机选择一样。
答案 0 :(得分:2)
请阅读:我将提示类设为抽象类,因为它显然修复了错误
它可能修复了编译器错误,但它没有解决问题。
在这种情况下,您的类实现interface
ActionListener
接口。基本上,interface
是一个契约协议,意味着实现interface
的类将满足接口的要求,在这种情况下,这意味着提供声明的actionPerformed
方法的实现通过ActionListener
界面
首先阅读What Is an Interface?,Creating a GUI With JFC/Swing,How to Use Buttons, Check Boxes, and Radio Buttons和How to Write an Action Listener
答案 1 :(得分:-1)
为什么你的班级确实是抽象的?我假设您忘记实现某些东西,并将其抽象化并不一定能解决这个问题。
答案 2 :(得分:-1)
将一个ActionListener添加到JButton ......这就是我通常做的......:
public class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if(event.getActionCommand().equals("0"))//.getActionCommand() returns the text in the component
{
//do what you want here...
}
}
}
现在让它正常运作
btn0.addActionListener(new ButtonHandler());//ButtonHandler is the name of the class that implements the ActionListener, btn0 is the name of the JButton