当前位置: 首页 > 知识库问答 >
问题:

我不能添加按钮到actionlistener[重复]

李睿
2023-03-14

嗨,我的问题是我不能添加按钮到动作听者,我会做一个菜单,我不知道为什么我成为一个错误在这里代码包lvl;

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Main extends JFrame implements ActionListener{

    private JButton button;
    private JButton eintellungen;
    private JButton credits;
    private JButton schliessen;


    public static void main(String[] args) {

        JFrame meinJFrame = new JFrame();
        meinJFrame.setTitle("menu");
        JPanel panel = new JPanel();


    JButton button = new JButton("play");
    JButton schliessen = new JButton("schließen");
    JButton eintellungen = new JButton("einstellungen");
    JButton credits = new JButton("credits");
    panel.add(button);
    panel.add(schliessen);
    panel.add(credits);
    panel.add(eintellungen);
    credits.addActionListener(this);


    meinJFrame.add(panel);


    meinJFrame.setSize(500, 500);

    meinJFrame.setVisible(true);


}

@Override
public void actionPerformed(ActionEvent e) {
                        }


}

}哦,我变成了一个错误,错误说不能在静态上下文中使用它,它是由credits.addActionListener(this)创建的;请帮助我

共有2个答案

杨昆
2023-03-14

显然,您的类Main及其方法Main(String[]args)是静态的,尽管您的Main实现了ActionListener,但它不能使用,因为方法addActionListener需要一个Object,静态方法Main没有“this”上下文。你可以

credits.addActionListener(new YourActionListener());


        meinJFrame.add(panel);


        meinJFrame.setSize(500, 500);

        meinJFrame.setVisible(true);


    }

}
class YourActionListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {

    }
}

或者

credits.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });
孔扬
2023-03-14

您处于公共静态main的静态上下文中。静态上下文中没有this。使用不记名类insteed。

    credits.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e){
        ////    handle action here
    }
});
 类似资料:
  • 我试图将24个添加到我的的,但当我运行它时,我发现没有添加任何按钮。(至少,它们不可见!)。我试着给一个背景色,它是可见的。有人知道我做错了什么吗? 这是我的代码(还有一个类): 其他(主要)类别:

  • 问题内容: 我搜索了在jtable中添加按钮的教程,并从http://tips4java.wordpress.com/2009/07/12/table-button- column/ 找到了一个类文件, 该按钮在哪里设置? 问题答案: 它是通过DefaultTableModel中的数据在表渲染器和编辑器中自动设置的。例如,对于表编辑器,代码为: 表模型的值在哪里。有关详细信息,请参见ButtonC

  • 问题内容: 如何将actionListener添加到使用netbeans放置的现有jCalendar的jDayChooser组件中? 我只想在单击日期按钮时才触发事件。当jCalendar中的propertyChange甚至侦听jMonthChooser和jYearChooser时 使用Toedter的jCalendar的PS 问题答案: 或者,你可以侦听特定的,。 附录: 如何使它适用于 ? 同

  • 问题内容: 我发现,当我编写“ pnlMap.add(map [i] [j])”时,键侦听器将无法工作。map是JButton的集合,pnlMap是JPanel。 公共游戏(玩家播放器){ 问题答案: 为了工作,必须将其注册为可聚焦的组件并使其具有键盘焦点。默认情况下,大多数容器都喜欢和无法将其聚焦(在考虑使它们成为容器之前,我会非常小心)。这意味着,一旦您添加了一个可以接受键盘焦点的组件(并且它

  • 我已经创建了一个按钮数组(),我想为数组中的所有按钮添加相同的操作侦听器,而不是逐个添加它们。 想象一下,每次我点击屏幕上显示的一个按钮,它就会在数组中打印出该按钮的索引。

  • 我正在尝试做一个教程,学习python中的Selenium,但是我似乎无法让Selenium使用find_element_by_class或find_element_by_xpath单击“Add to Cart”按钮。问题是检查项目是否缺货,如果缺货则刷新网页并重新启动脚本。如果物料有库存,则应单击“添加到购物车”。 我正在使用: Python v3.9 Chrome v87