我試圖做一個JFrame上出現的mousePressed 位置,但我一直沒有和它得到的煩人:(任何想法是不工作?的JFrame沒有出現在鼠標點擊的位置(包括SSCCE)
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class SSCCE
{
@SuppressWarnings("static-access")
public static void getInputData()
{
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);
JLabel emptyLabel = new JLabel("Test");
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.setSize(new Dimension(375, 100));
MouseAdapter ml = new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent me)
{
frame.setLocation(me.getX(), me.getY());
}
@Override
public void mouseDragged(MouseEvent me)
{
frame.setLocation(me.getX(), me.getY());
}
};
frame.getContentPane().addMouseListener(ml);
frame.getContentPane().addMouseMotionListener(ml);
frame.setVisible(true);
}
public static void main(String args[])
{
JFrame test = new JFrame();
JButton but = new JButton("Click me");
but.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
getInputData();
}
});
test.getContentPane().add(but, BorderLayout.CENTER);
test.setSize(500, 500);
test.setVisible(true);
}
}
我很困惑。鼠標監聽器位於第二幀。似乎爲我工作(雖然PL&F將有權停止從標籤冒泡的鼠標事件)。 – 2010-06-27 12:51:45
是啊,我的壞,我沒有說清楚我的意思。當我在帖子中編輯時,我希望新框架的位置位於mousePressed位置。 – kxk 2010-06-27 13:03:39