我正在使用简单的JButton创建一个Tic tac toe项目我已经在JButton中设置了0和*的图像但是我想要JButton如果点击一次就不应该改变,以便当1个用户按下按钮时然后不应该改变JButton上的图像
import javax.swing.*;
import java.awt.event.*;
class My
{
public static Boolean flag=true;
}
class Tic extends JFrame implements ActionListener
{
JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;
ImageIcon img,img1;
Tic()
{
img=new ImageIcon("C:\\Users\\Love\\Desktop\\z.jpeg");
img1=new ImageIcon("C:\\Users\\Love\\Desktop\\k.jpeg");
btn1=new JButton();btn2=new JButton();btn3=new JButton();
btn4=new JButton();btn5=new JButton();btn6=new JButton();
btn7=new JButton();btn8=new JButton();btn9=new JButton();
btn1.setBounds(0,0,80,70);btn2.setBounds(80,0,80,70);btn3.setBounds(160,0,80,70);
btn4.setBounds(0,70,80,70);btn5.setBounds(80,70,80,70);btn6.setBounds(160,70,80,70);
btn7.setBounds(0,140,80,70);btn8.setBounds(80,140,80,70);btn9.setBounds(160,140,80,70);
btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);
btn4.addActionListener(this);btn5.addActionListener(this);btn6.addActionListener(this);
btn7.addActionListener(this);btn8.addActionListener(this);btn9.addActionListener(this);
add(btn1);add(btn2);add(btn3);
add(btn4);add(btn5);add(btn6);
add(btn7);add(btn8);add(btn9);
setLayout(null);
setVisible(true);
setSize(246,240);
setLocation(400,200);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
JButton temp=(JButton)e.getSource();//System.out.println(temp);
if(temp==btn1||temp==btn2||temp==btn3||temp==btn4||temp==btn5||temp==btn6||temp==btn7||temp==btn8||temp==btn9){
if(My.flag==true)
{
temp.setIcon(img1);temp.setEnabled(false);
//temp.setText("<html><font color=red></font></html>");
My.flag=false;
}
else
{
temp.setIcon(img);
temp.setEnabled(false);
My.flag=true;
}
// btn1 btn2 btn3
//btn
}
}
public static void main(String args[])
{
new Tic().setTitle("Tic_Tac_Toe..Love--Soni");
}
}
答案 0 :(得分:0)
我假设您的按钮开始时没有文字,并通过触发ActionListener
进行更改。如果是这种情况,那么在更改JButton
中的文本之前,只需检查当前包含的文本是否为空String
。如果为空,请进行更改。如果它不是空的,什么也不做。
所以你的ActionListener
应该是这样的:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource();
if(b.getText().equals("")){
//Logic to determine what it should be set to...
b.setText("0"); // or "*"
}
}
});
您也可以在更改后禁用按钮,如下所示:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource();
//Logic to determine what it should be set to...
b.setText("0"); // or "*"
b.setEnabled(false);
}
});
更新代码后更新
您只需要将if条件更新为:
if((temp==btn1||temp==btn2||temp==btn3||temp==btn4||temp==btn5||temp==btn6||temp==btn7||temp==btn8||temp==btn9)
&& temp.getText().equals("")) {