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

一个JButton用于根据用户输入调用成员函数

裴凯定
2023-03-14

给定一个GUI应用程序,用户将选择两个单选按钮中的一个,JRadioButton aJRadioButton B。根据他的选择,他将输入不同的输入。但是,要计算一个公式,他会点击一个常规按钮,jbutton c

但是,当ActionListener中调用了两个以上的成员函数时,问题就随之而来了。


      c = new JButton( "c" );
      c.addActionListener( new ActionListener() {
        @Override
        public void actionPerformed( ActionEvent e ) {
          cActionPerformed( e );
        }
      });

因为在ActionEvent中,


    public void cActionPerformed( ActionEvent ev ) {
      try {
        double f = foo.blah( x, y );
        double b = bar.meh( y, z );
      }
      catch( NumberFormatException e ) {
        JOptionPane.showConfirmDialog(
        null, "Error message.", "Error", JOptionPane.CANCEL_OPTION
        );
      }
    }

但是,该程序只在调用堆栈中向下一个级别,返回catch异常对话框。如何使用户按下按钮c时,根据选择的是a还是b分别得到fb

共有1个答案

拓拔麒
2023-03-14

您可以使用从EventObject继承的getSource()方法来区分事件的源。

示例:

  public void actionPerformed(ActionEvent event) {
    if (event.getSource() == button1) {
      setSize(300, 200);
      doLayout();
    } else if (event.getSource() == button2) {
      setSize(400, 300);
      doLayout();
    } else if (event.getSource() == button3) {
      setSize(500, 400);
      doLayout();
    }
 类似资料:
  • 我正在尝试创建一个21点模拟器。在向玩家和庄家发牌之前,我需要洗牌。是一个无效函数,是类中的卡类型。职业存储从职业中发出的牌。在游戏开始时,我需要向玩家和庄家发两张牌。当我尝试在类访问 的成员函数时,我收到错误消息“调用不带对象参数的非静态成员函数”。调用成员函数的正确方法是什么?我真的对语法感到困惑。

  • 我正在开发一个精灵编辑器。我有一个扩展JPanel的类,在该类中,我使用JLayeredPane作为容器。在底层,有一个带有ImageIcon的JLabel,在顶层有一个JPanel,我在其中绘制了一个网格。当代码运行时,我做了一些基本的数学运算,将JLayeredPane的首选大小设置为屏幕分辨率高度的85%左右。 我的问题是,当用户想要在其上绘制新画布时,我会用JOptionPane询问用户想

  • 我正在编写一个Java应用程序。我有多个按钮。每个按钮的代码完全相同,因此我只需要一个ActionListener。但是在这个ActionListener中,我需要为相应的按钮调用“setText()”。这可能吗?我将如何实现这一点? 我尝试了以下方法: 但这不起作用——它说“找不到符号”。 提前感谢;)

  • 本文向大家介绍浅析成员函数和常成员函数的调用,包括了浅析成员函数和常成员函数的调用的使用技巧和注意事项,需要的朋友参考一下 在Coordinate类中,有一个Display()成员函数和一个Display() const常成员函数,代码如下 Display()成员函数和一个Display() const常成员函数是互为重载的,那么如果我们直接像下面这样调用该方法,会调用的是哪个呢? 那么运行下程序

  • 我想让程序根据我的扫描仪输入从ArrayList中进行选择。比如,我写早餐和甜食,它必须随机列出早餐甜食,并打印随机索引。 我还在学习Java,我只是在玩,并试图编码小项目来训练它。 下面是我已经写过的课程: 我是否可以将列表存储在变量中,可能是这样的: 我知道很难理解我,但英语不是我的主要语言,希望它能被理解。

  • 我很难弄清楚如何让我的程序根据用户输入的月、日、年来计算星期几。如下图所示。关于如何使它与JTextField和JComboBoxes连接,我没有任何线索。我真的很感谢任何人帮我做这件事。我知道我应该用: Calendar xmas=new GregorianCalendar(1998,Calendar.12,25);int dayOfWeek=xmas.get(calendar.day_of_w