[英]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.