用Java编写的软件中的按钮如何工作?



例如上面的屏幕截图:当用户单击不同的按钮时,对用户输入的数据(这是一个数据分析应用程序)运行不同的算法,并显示输出。不过,刚开始编写Java GUI的时候,对我来说,这似乎就像魔术一样-每个窗格都有一个ActionListener吗?它是否侦听不同按钮的不同ActionCommand并在actionPerformed()方法内执行算法(对我来说,以独立于数据的方法执行算法似乎有点不直观...即按钮不知道什么它正在处理的数据?)。到目前为止,我在线阅读的所有动作侦听器教程都仅在按下按钮时才打印出一些内容...

连接按钮,动作监听器和在后台执行的实际动作的一般结构是什么?

提前致谢。

最佳答案

通常的方法是每个按钮有一个动作监听器。 Statistics面板(通过其字段之一)可以访问需要读取和修改的数据。因此,此面板中第一个按钮的处理如下所示:

private void initButtonListeners() {
    this.averageDegreeButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            computeAverageDegree();
        }
    }

    // other buttons...
}


computeAverageDegree()方法可能看起来像

private void computeAverageDegree() {
    double result = this.statistics.computeAverageDegree();
    this.averageDegreeLabel.setText(formatDoubleToString(result));
}

09-10 05:51