簡體   English   中英

Java 中的按鈕單擊操作

[英]Button Click Action in Java

我正在嘗試制作游戲,現在我需要按鈕在單擊按鈕時附加一個動作,但我一直收到錯誤消息,提示“語法錯誤,插入“}”以完成 ClassBody”沒有但是缺少“}”的錯誤,因此代碼本身肯定有問題。

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

import javax.swing.JButton;
import javax.swing.JFrame;

public class Menu extends Window implements ActionListener
{

  Button start = new Button("Start Game:");
  Button quit = new Button("Quit");
}


public void actionPerformed(ActionEvent e)
{
  if (e.getActionCommand().equals("Start Game: "))
{
  System.out.print("Button one clicked");
}
else if (e.getActionCommand().equals("Quit"))
{
  System.out.print("Button two clicked");
}


}

方法onActionPerformed不在 class 塊中:

public class Menu extends Window implements ActionListener
{ //Class block starts

  Button start = new Button("Start Game:");
  Button quit = new Button("Quit");
} //Class block ends

public void actionPerformed(ActionEvent e)
....

class 的所有方法都必須在 class 的塊內:

public class Menu extends Window implements ActionListener {

    Button start = new Button("Start Game:");
    Button quit = new Button("Quit");

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Start Game: ")) {
            System.out.print("Button one clicked");
        } else if (e.getActionCommand().equals("Quit")) {
            System.out.print("Button two clicked");
        }

    }
}

此外,您可能需要決定是要使用 AWT 小部件 ( java.awt.* ) 還是 Swing 組件 ( javax.swing.* )。

例如,當您說Button button = new Button(); ,它是一個 AWT 小部件。 為了使用 Swing 一個,你必須JButton jButton = new JButton(); .

您忘記將事件處理程序 class 的實例注冊為按鈕上的偵聽器。

將此添加到您的 class

start.addActionListener(this);
quit.addActionListener(this);

您還必須將actionPerformed function 移動到 class 體內。 你的 class 看起來像

public class Menu extends Window implements ActionListener
{

  Button start = new Button("Start Game:");
  Button quit = new Button("Quit");
  start.addActionListener(this);
  quit.addActionListener(this);

 public void actionPerformed(ActionEvent e)
{
  if (e.getActionCommand().equals("Start Game: "))
  {
    System.out.print("Button one clicked");
  }
  else if (e.getActionCommand().equals("Quit"))
  {
    System.out.print("Button two clicked");
  }    
}
}

暫無
暫無

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

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