在Java中翻转硬币

use*_*968 1 java

我正在用Java编写GUI程序.GUI由9个标题为H的按钮组成.在运行模式下,当鼠标点击任何按钮时,该按钮应将标题更改为T.我有一个MouseListener代码注意点击.但我无法根据鼠标点击找到我需要更改该特定按钮.任何帮助表示赞赏.
以下是我的代码.

package flippingcoins;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class FlippingCoins extends JFrame
{
    public FlippingCoins()
    {
        JPanel p = new JPanel();

        p.setLayout(new GridLayout(3,3,1,1));

        JButton jbt1=new JButton("H");
        p.add(jbt1);
        JButton jbt2=new JButton("H");
        p.add(jbt2);
        JButton jbt3=new JButton("H");
        p.add(jbt3);
        JButton jbt4=new JButton("H");
        p.add(jbt4);
        JButton jbt5=new JButton("H");
        p.add(jbt5);
        JButton jbt6=new JButton("H");
        p.add(jbt6);
        JButton jbt7=new JButton("H");
        p.add(jbt7);
        JButton jbt8=new JButton("H");
        p.add(jbt8);
        JButton jbt9=new JButton("H");
        p.add(jbt9);
        add(p);
    }

    public static void main(String[] args) //Main program begins here.
    {
        FlippingCoins frame = new FlippingCoins();//Instantiating an object.
        frame.setTitle("Head or Tails");//Setting the frame title.
        frame.setSize(300,300);//Setting the size.
        frame.setLocationRelativeTo(null);//Setting the location.
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// Default closing options.
        frame.setVisible(true);//Setting visibility to true.
    }//End of main program.

    static class ChangeTiles extends JPanel
    {
        public ChangeTiles()
        {
        addMouseListener(new MouseAdapter()//Creating a listener
        {
            public void mouseClicked(MouseEvent e)//When the mouse is clicked.
            {
              int x=e.getX();
              int y=e.getY();
              System.out.println("x= "+ x + "y= "+y);

            }
        }
                        ); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 5

那不是好策略.相反,添加ActionListener到每个按钮.它不仅更容易,而且用户也可以使用键盘点击按钮.

另外,请考虑使用数组或按钮列表.这将允许使用循环而不是复制和粘贴相同的代码9次.