簡體   English   中英

交替顯示的圖像

[英]Alternate displayed image

我正在做一個井字游戲,這個想法是在我第一次點擊一個按鈕時它會顯示圖像“X”,如果我點擊另一個按鈕它會顯示圖像“O”......它會繼續,顯示圖像交替。 我也在嘗試通過單擊按鈕顯示一張圖像,但是如果我再次單擊該按鈕,圖像就會消失。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;


public class XOButton extends JButton implements ActionListener{
  ImageIcon X;
  ImageIcon O;
  byte value=0;
  byte k=0;

public XOButton(){
    try {
        X=new ImageIcon(this.getClass().getResource("X.png"));
        O=new ImageIcon(this.getClass().getResource("O.png"));
        addActionListener(this);

    } catch (NullPointerException e) {
        System.out.println("The image is not Available");
    }

}

@Override
public void actionPerformed(ActionEvent e) {
    value++;
    value %= 2;


    if( k%2 == 0) { 

        switch(value){
            case 0:
                setIcon(null);
                break;
            case 1:
                setIcon(X);
                System.out.println("KX= " + k);
                break;
        }
        k++;
    }


    else {  

        switch(value){
            case 0:
                setIcon(null);
                break;
            case 1:
                setIcon(O);
                System.out.println("K0= " + k);
                break;
        }
        k++;
    }
    }

}

你的邏輯被打破了,我看到的主要問題是每個 XOButton 都有自己的 ActionListener,一個完全獨立於所有其他的,所以每當第一次按下任何按鈕時, value int 將始終等於 0,無論先前按下的按鈕的狀態如何。

我建議

  • 您不擴展 JButton 而是使用 JButton
  • 你給所有 JButton 的相同Action 或 ActionListener
  • 此偵聽器存儲上次按下按鈕時 xo 的狀態
  • 此偵聽器檢查當前按下的按鈕是否處於空、X 或 O 狀態,然后執行相應的操作。

有關使用圖像圖標的 Tic Tac Toe 程序的示例,請查看對類似問題的回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM