countresultsfrom.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Color orginalColor = mcoef.getBackground();
switch(countresultsfrom.getSelectedIndex())
{
case 0: // Mech Cnt;
mtotal.setBackground(Color.YELLOW);
if(mstatus.getSelectedIndex() == 2)
{
countresultsfrom.setSelectedIndex(2);
// countresultsfrom <----- CALL EVENT ???
}
etotal.setBackground(orginalColor);
ctotal.setBackground(orginalColor);
break;
case 1: // El Cnt;
etotal.setBackground(Color.YELLOW);
if(estatus.getSelectedIndex() == 2)
{
countresultsfrom.setSelectedIndex(2);
}
mtotal.setBackground(orginalColor);
ctotal.setBackground(orginalColor);
break;
case 2:
ctotal.setBackground(Color.YELLOW);
etotal.setBackground(orginalColor);
mtotal.setBackground(orginalColor);
break;
}
}
});
如何再次调用侦听器???
答案 0 :(得分:2)
yourListener.actionPerformed(/*some event*/ e)
即可。请注意,它不会作为事件处理,而是作为常规方法调用处理。答案 1 :(得分:2)
你的描述对我来说并不清楚,但有两种方式
1 /创建自己的Class someName implements ActionListener
2 /在Action
上创建java.swing.Action
一些示例
编辑:
如果您的计数结果是JList,那么我们所有的建议(可能)根本不正确http://download.oracle.com/javase/tutorial/uiswing/components/list.html
答案 2 :(得分:2)
首先,将您的动作执行方法提取到代码中的单独类中。它可以是您希望调用的同一个类中的私有静态类。 e.g
private static class ColorActionHandler implements ActionListener {
//implement your method here by looping twice. or create a method for your logic and then call it in a for loop in the actionPerformed method
}
并在countresultsfrom按钮的addActionListener中传递此类的实例。
答案 3 :(得分:1)
您希望每次操作都调用两次actionPerformed(ActionEvent e)
吗?
如果是,请将以Color orginalColor = mcoef.getBackground()
开头的块包装在for循环中。 for (int i=0; i<2; i++) { ... }