我在Java中创建了一个自定义按钮,它有两个状态:mousePressed和mouseReleased。同时,如果我想重用这个按钮,以便其他事件监听器可以注册它,这些是我应该做的适当步骤(这是一个新的任务,所以尽管可以使用JButton,我想我们正在尝试表明我们可以像JButton一样创建自己的Button:
有一个私有变量,如List list = new List(),用于跟踪何时添加事件以及某种带有for循环的函数来运行所有操作。以下是我到目前为止的情况:
公共类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(真); } }); }
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行:在java.awt.event.ActionListener接口中找不到符号,方法actionPerfomed()action.actionPerformed();
答案 0 :(得分:1)
不,完全没有!
JButton拥有您需要的一切。只需将自己的监听器添加到按钮即可。不要覆盖某些东西。就像这样:
public class MyButton extends JButton implements MouseListener // maybe you want to add other listeners... separate them with comma's.
{
public MyButton(String caption)
{
super(caption);
addMouseListener(this);
}
// implement your listener methods here
}
答案 1 :(得分:0)
我正在用Java制作一个自定义按钮 有两种状态,mousePressed和 的mouseReleased
也许您应该使用JToggleButton。