Java JOptionPane
Java JOptionPane
我正在 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 格式)。
希望我已经解释清楚了。
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
方法。
希望,这会有所帮助
public class YourHEad
{
public static void main(String[] args)
{
final 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++){
JButton button= new JButton(seats[i][j]);
button.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(frame, ((JButton)(e.getSource())).getText()+" is Pressed");
}
});
frame.add(button);
}
}
frame.pack();
frame.setVisible(true);
}
}
我正在 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 格式)。
希望我已经解释清楚了。
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
方法。
希望,这会有所帮助
public class YourHEad
{
public static void main(String[] args)
{
final 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++){
JButton button= new JButton(seats[i][j]);
button.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(frame, ((JButton)(e.getSource())).getText()+" is Pressed");
}
});
frame.add(button);
}
}
frame.pack();
frame.setVisible(true);
}
}