如何在我的游戏中实现ActionListener?

时间:2014-06-08 03:13:00

标签: java swing actionlistener mouse-listeners

我是一名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”就像我自己可以做的计算机选择一样。

3 个答案:

答案 0 :(得分:2)

  

请阅读:我将提示类设为抽象类,因为它显然修复了错误

它可能修复了编译器错误,但它没有解决问题。

在这种情况下,您的类实现interface ActionListener接口。基本上,interface是一个契约协议,意味着实现interface的类将满足接口的要求,在这种情况下,这意味着提供声明的actionPerformed方法的实现通过ActionListener界面

首先阅读What Is an Interface?Creating a GUI With JFC/SwingHow to Use Buttons, Check Boxes, and Radio ButtonsHow 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