我是Java Programming的新手,但他是一位经验丰富的C++程序员.我正在学习如何使用swing编程GUI.我想知道ActionListeners的资源密集程度(运行时和内存)是多少?是否应该在特定程序中创建的侦听器总数的一般准则?在性能受到影响之前有多少?
我目前正在通过Deitel Developer Series Java for Programmers一书中学习Java.在一个特定的例子中,他们有一个JRadioButtonItems数组作为该类的私有变量.他们还创建了一个ItemHandler类,该类从ActionListener类扩展,该类对整个单选按钮阵列进行线性搜索,以确定所选的那个并相应地更改程序的状态.数组中的所有单选按钮共享相同的Action Listener.这对于进行信息的线性搜索似乎相当低效,所以我重写了ActionListener类以接受在构造函数中修改的建议值,并为每个单选按钮提供了自己的ActionListener,其中包含构造函数传递的建议值,以避免做一个线性搜索.哪种方法性能更好?我为听起来像菜鸟道歉,我只是想在Java中编写一套良好的编程习惯.附件是代码的一个小例子.谢谢.
/************************************************************************
Original code in Deitel book with linear search of selected Radio button in Actionlistener
****************************************************************************/
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
public class MenuTest extends JFrame{
private final Color colorValues[] = {Color.BLACK, Color.WHITE, Color.GREEN};
private JRadioButtonMenuItem colorItems[];
private ButtonGroup colorButtonGroup;
public MenuTest(){
super("Menu Test");
JMenu fileMenu = new JMenu("File");
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(fileMenu); …Run Code Online (Sandbox Code Playgroud)