簡體   English   中英

單擊一次按鈕時執行操作,而單擊兩次,三次等時執行其他操作。(Netbeans,Java)

[英]Perform action when button clicked once and do a different action when clicked twice, three times etc. (Netbeans, Java)

我是Java編程的新手,想制作一個基本的游戲,單擊一次即可顯示圖像,單擊兩次可顯示不同的圖像,等等。我知道如何進行所有操作,但我不知道如何跟蹤任何點擊,然后根據已完成的點擊次數執行操作(很難解釋,很抱歉...)

我...想做一個基本的游戲,當單擊一次時顯示一個圖像,單擊兩次時顯示一個不同的圖像,等等。我知道如何進行所有操作,但我不知道如何跟蹤任何點擊

根據我的評論,為帶有ActionListener的類提供一個int字段,稱為buttonCount,並在每次按下按鈕時將其遞增-在按鈕ActionListener的actionPerformed方法內部: buttonCount++

然后根據已完成的點擊次數進行操作(很難解釋,很抱歉...)

在ActionListener的actionPerformed方法中,更改顯示的圖像。 如何更改所有內容取決於您如何顯示它,還沒有顯示給我們看,因此我無法提供任何代碼。

一種簡單的方法是創建一個ImageIcons的ArrayList來保存圖像(當然是ImageIcons),然后在ArrayList上調用get(buttonCount)以獲取適當的ImageIcon,並通過setIcon(...)在JLabel中顯示它setIcon(...)方法。 確保buttonCount小於ArrayList的大小,以免出現ArrayIndexOutOfBoundsException。 一種方法是通過ArrayList的大小來修改buttonCount。 這將允許您循環瀏覽圖像集合。

同樣,您將需要閱讀有關如何使用JButton的Swing教程,然后將大問題分解為小步驟,一次嘗試解決每個步驟。

同樣,如果您需要更多細節和更具體的幫助,則必須顯示您嘗試過的內容,並詳細說明使用它可能遇到的問題。 我最真誠的信念和哲學是:通過腦力勞動和汗水強迫大腦去做新的和不熟悉的事情,從而使您學習最多。 因此,您將一無所獲。

您可以通過這種方式計算鼠標的點擊次數。 通過使用if-else或switch case,可以顯示圖像。

public class ButtonStart extends Frame {
private int mouseclicked = 0;
TextField objTextField;

public static void main(String args[]) {
    ButtonStart BS = new ButtonStart();
}

public ButtonStart() {
    Frame objFrame;
    Button objButton;
    TextField objTextField;
    objFrame = new Frame("Clicking Buttons");
    objButton = new Button("Click me!");
    objTextField = new TextField("0");

    objFrame.addMouseListener(new MyMouseListener());
    objFrame.add(objButton);
    objFrame.add(objTextField);
    objFrame.addWindowListener(new WindowAdapter()

    {
        public void windowClosing(WindowEvent we) {
            System.exit(0);
        }
    });

}

public class MyMouseListener extends MouseAdapter {
    public void mouseClicked(MouseEvent me) {
        int mouseclicked = me.getClickCount();

        objTextField.setText("Mouse clicked this many times:"
                + mouseclicked);
    }

}

}

暫無
暫無

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

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