Java 处理大量事件侦听器?
如果我的应用程序有240个JButton,那么管理事件跟踪的最佳方法是什么?除了写200多次以下内容外,还有什么更好的选择:Java 处理大量事件侦听器?,java,events,actionlistener,Java,Events,Actionlistener,如果我的应用程序有240个JButton,那么管理事件跟踪的最佳方法是什么?除了写200多次以下内容外,还有什么更好的选择: if (e.getSource() == btn[0]) {} 您可以将行为与数据分开。对于具有类似行为的一组按钮,只为执行的操作编写一个侦听器。然后使用setTag()/getTag()或在自定义子类中扩展和添加数据,将数据存储在JButton实例中。您可以将行为与数据分开。对于具有类似行为的一组按钮,只为执行的操作编写一个侦听器。然后使用setTag()/getTa
if (e.getSource() == btn[0]) {}
您可以将行为与数据分开。对于具有类似行为的一组按钮,只为执行的操作编写一个侦听器。然后使用setTag()/getTag()或在自定义子类中扩展和添加数据,将数据存储在JButton实例中。您可以将行为与数据分开。对于具有类似行为的一组按钮,只为执行的操作编写一个侦听器。然后使用setTag()/getTag()或在自定义子类中扩展和添加数据,将数据存储在JButton实例中 监听器将负责基本任务,如更改JButton ImageIcon 所有侦听器都将包含对生成事件的组件的引用 所以你可以做一些基本的事情,比如:
ActionListener al = new ActionListener(
{
@Override
public void actionPerformed(ActionEvent e)
{
JButton button = (JButton)e.getSource();
button.setIcon(...);
}
});
for (int i = 0; i < 240; i++)
{
JButton button = new JButton(...);
button.addActionListener( al );
panel.add( button );
}
ActionListener al=新建ActionListener(
{
@凌驾
已执行的公共无效操作(操作事件e)
{
JButton按钮=(JButton)e.getSource();
按钮。设置图标(…);
}
});
对于(int i=0;i<240;i++)
{
JButton按钮=新JButton(…);
addActionListener(al);
面板。添加(按钮);
}
监听器将负责基本任务,如更改JButton ImageIcon
所有侦听器都将包含对生成事件的组件的引用
所以你可以做一些基本的事情,比如:
ActionListener al = new ActionListener(
{
@Override
public void actionPerformed(ActionEvent e)
{
JButton button = (JButton)e.getSource();
button.setIcon(...);
}
});
for (int i = 0; i < 240; i++)
{
JButton button = new JButton(...);
button.addActionListener( al );
panel.add( button );
}
ActionListener al=新建ActionListener(
{
@凌驾
已执行的公共无效操作(操作事件e)
{
JButton按钮=(JButton)e.getSource();
按钮。设置图标(…);
}
});
对于(int i=0;i<240;i++)
{
JButton按钮=新JButton(…);
addActionListener(al);
面板。添加(按钮);
}
听者是做什么的?嗨,我想做一个基于瓷砖的游戏。监听器将负责基本任务,如更改JButton ImageIcon。您可能希望向我们提供有关您的问题和代码的更多相关信息,以获得更好的答案,但如果是基于互动程序的游戏,则所有互动程序按钮可以共享同一个监听器,在监听器中有一个机制,找出网格中的哪个tile/按钮被按下,然后将此信息传递给模型。同样,一个更具体的答案可能需要一个更充实的问题。请看以下类似问题的答案,(这是我的!),(另一个我最近提出的类似问题)。听众是做什么的?嗨,我正在尝试制作一个基于瓷砖的游戏。监听器将负责基本任务,如更改JButton ImageIcon。您可能希望向我们提供有关您的问题和代码的更多相关信息,以获得更好的答案,但如果是基于互动程序的游戏,则所有互动程序按钮可以共享同一个监听器,在监听器中有一个机制,找出网格中的哪个tile/按钮被按下,然后将此信息传递给模型。同样,一个更具体的答案可能需要一个更充实的问题。请看一下以下类似问题的答案,(这是我的!),(另一个我最近提出的类似问题)。