当前位置: 首页 > 知识库问答 >
问题:

Java JOptionPane

伊铭
2023-03-14

我正在用Java创建一个基于Tic Tac Toe GUI的游戏,并且正在努力使用JoptionPane的2D数组。到目前为止,我已经能够创建可供选择的按钮:

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

public class YourHEad {

    public static void main(String[] args) {
    JFrame frame = new JFrame("GridLayout Test");
    frame.setLayout(new GridLayout(4, 4));

StringBuilder sb = new StringBuilder();
sb.append("<html>");

String[][] seats = new String [4][4];
String alpha = "ABCD";

for (int i=0; i<4; i++){

    String letter = Character.toString(alpha.charAt(i));

    for (int j=0; j<4; j++){

        String number = Integer.toString(j+1);
        seats [i][j]=letter+number+" ";

    }
}

for (int i = 0; i < 4; i++){
    for (int j = 0; j < 4; j++){
         frame.add(new JButton(seats[i][j]));
    }
}

frame.pack();
frame.setVisible(true);

if(new JButton(seats[0][0]).getModel().isPressed()){
    System.out.println("the button is pressed");
}

}}

从最后几行代码中可以看到,我正在尝试找出如何判断按钮何时被按下,以便例如,如果用户单击“A1”(因此是0,0),那么程序可以输出文本(我将把它改为JOptionPane格式)。

希望我解释得不错。

共有1个答案

云卓
2023-03-14
for (int i = 0; i < 4; i++){
    for (int j = 0; j < 4; j++){
        JButton jb = new JButton(seats[i][j]);
        jb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(((JButton)(e.getSource())).getText());
            }
        });
        frame.add(jb);
    }
}

在Java中,您可以使用ActionListeners。一旦添加了侦听器,它将侦听一个操作,当执行了一个操作时,它将调用必须重写的#ActionPerformed方法。

 类似资料:

相关问答

相关文章

相关阅读