我在Java中创建了一个自定义按钮,它有两个状态:mousePressed和mouseReleased . 同时,如果我想重用这个按钮,以便其他事件监听器可以注册它,这些是我应该做的适当步骤(这是一个新的任务,所以尽管可以使用JButton,我想我们正在尝试表明我们可以像JButton一样创建自己的Button:
-
重写addActionListener(ActionListener操作)
-
重写removeActionListener(ActionListener操作)
-
有一个私有变量,如List list = new List(),用于跟踪何时添加事件以及某种带有for循环的函数来运行所有操作 . 这是我到目前为止:
public class CustomButton {public static void main(String [] args){EventQueue.invokeLater(new Runnable(){public void run(){CustomButtonFrame frame = new CustomButtonFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible (true);}}); }
public void addActionListener(ActionListener al)
{
listenerList.add(al);
}
public void removeActionListener(ActionListener al)
{
listenerList.remove(al);
}
private void notifyListeners()
{
for (ActionListener action : listenerList) {
action.actionPerfomed();
}
}
List<ActionListener> listenerList = new ArrayList<ActionListener>();
}
我收到编译错误:第38行:对List的引用不明确,java.util中的类java.util.List和java.awt中的类java.awt.List匹配List listenerList = new ArrayList();
和第34行:找不到符号,方法actionPerfomed()在接口java.awt.event.ActionListener action.actionPerformed();
2 回答
不,完全没有!
JButton拥有您需要的一切 . 只需将自己的监听器添加到按钮即可 . 不要覆盖某些东西 . 像这样:
也许你应该使用JToggleButton .