我正在实现自己的拖放功能,我已将问题减少到:
下面的代码可以工作,并根据需要调用mousePressed()和mouseReleased()。但是,如果取消注释 frame.add(label),则永远不会调用mouseReleased()。
JFrame frame = new JFrame();
frame.setSize(new Dimension(100, 100));
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Click Me!");
label.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
System.out.println("Pressed");
//frame.add(label);
{
public void mouseReleased(MouseEvent e)
{
System.out.println("Released");
}
});
frame.add(label);
frame.setVisible(true);
为什么在将标签重新添加到框架面板后从未调用过mouseReleased()?
有办法解决这个问题吗?