【问题标题】:My Buttons won't execute the command given to them我的按钮不会执行给他们的命令
【发布时间】:2022-01-22 11:54:48
【问题描述】:

我试图让按钮在按下时至少执行某些操作,并且 BlueJ 没有显示任何错误,但是当我执行程序并尝试按下按钮时,什么也没有发生。我真的不确定为什么会这样。我将不胜感激!

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class MainMenu
{
JFrame frame= new JFrame();
JButton button = new JButton("Singleplayer");
JButton button2 = new JButton("Multiplayer");
MainMenu(){
    prepareGUI();
}  


public void prepareGUI(){
    frame.setTitle("Game");
    frame.getContentPane().setLayout(null);
    frame.add(button);
    frame.add(button2);
    button.setBounds(100,200,100,40);
    button2.setBounds(200,200,100,40);
    frame.setVisible(true);
    frame.setBounds(200,200,400,400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}


public void setUpButtonListeners(){
    ActionListener buttonlistener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.getContentPane().setBackground(Color.green);
                System.out.println("Singleplayer Selected");
            }
        };

    ActionListener buttonlistener2 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                frame.getContentPane().setBackground(Color.red);
                System.out.println("Multiplayer Selected");
            }
        };
    button.addActionListener(buttonlistener);
    button2.addActionListener(buttonlistener2);
}
public class MainClass {
    public void main(String args[] )
    { 
        new MainMenu();
    }
}
}

【问题讨论】:

  • setLayout(null); 使用。布局!

标签: java swing jframe response jbutton


【解决方案1】:

setUpButtonListeners() 不在程序中执行。所以动作监听器不可用。您可以在 prepareGUI 方法中包含 setUpButtonListeners()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2015-08-26
    • 1970-01-01
    • 2018-12-19
    • 2015-05-12
    相关资源
    最近更新 更多