java - 操作不同 Jpanel 中的按钮

标签 java swing oop jpanel jbutton

我有一个带有各种按钮的各种面板。某些按钮应调用通过数组列表启动搜索的方法,其他按钮应调用将信息发送到不同 JTextArea 框的方法。 为每个按钮添加事件监听器后,如何根据在 actionPerformed 方法中单击的按钮创建特定操作?下面是我的各种 gui 属性的代码,您可以看到有 3 个不同的 JPanel,每个 JPanel 的按钮需要执行不同的功能。我只需要知道如何确定单击了哪个按钮,以便我可以将其链接到适当的方法(已在另一个类中编写)。这需要 if 语句吗?如果我将其公开,我的其他类可以访问 GUI 上的按钮吗?或者是否有更有效的方法来执行此操作。

JPanel foodOptions;
JButton[] button= new JButton[4]; //buttons to send selected object to info panel
static JComboBox[] box= new JComboBox[4];

JPanel search;
JLabel searchL ;
JTextField foodSearch;
JButton startSearch; //button to initialize search for typed food name
JTextArea searchInfo;

JPanel foodProfile;
JLabel foodLabel;
JTextArea foodInfo;
JButton addFood; //but to add food to consumed calories list

JPanel currentStatus;
JLabel foodsEaten;
JComboBox foodsToday;
JLabel calories;
JTextArea totalKCal;
JButton clearInfo; //button to clear food history

最佳答案

根据人们的评论,您需要使用某种类型的监听器,这是一个真正的基本示例来帮助您入门,但是在大多数情况下,我会在其他地方定义您的监听器,而不是即时定义:

JButton startSearch = new JButton("startSearch");
        JButton addFood = new JButton("addFood");

        startSearch.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                //DO SEARCH RELATED THINGS

            }
        });

        addFood.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                //DO FOOD ADD RELATED THINGS

            }
        });

关于java - 操作不同 Jpanel 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14468958/

相关文章:

java - 如何获取从不在类路径中的 jar 加载的任何类作为流?

Java Swing 在耗时任务期间显示 BusyIndi​​cator

java - 无法在 android 中调用 String.isEmpty()

java - Java 中是否有标准的 GUI 切换开关?

java - 在 do-while 循环中将值添加到整数

Java定时器随机时间每次在2个值之间

JAVA - 从 Action 监听器调用时 JFrame 看起来不正确

java - 为什么LinkedList可以赋值给一个List变量?

oop - 这里需要抽象类吗?

php - 函数参数的多个接口(interface)要求