我正在尝试用Java编写一个程序,该程序将使一个按钮出现在JPanel中,单击该按钮的位置和时间。为此,我使用以下代码运行方法:
public void run(){
panel.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
JButton button = new JButton();
button.setVisible(true);
button.setAlignmentX(e.getXOnScreen());
button.setAlignmentY(e.getYOnScreen());
panel.add(button);
panel.revalidate();
panel.repaint();
}
});
}
问题是,不要紧记我单击的位置,按钮永远不会出现。
最佳答案
单击面板时,此代码应使按钮出现。它不会使它出现在光标上,但是应该很容易添加。每次您单击面板时,它也会创建一个新按钮。如果只希望一个按钮,只需将这一行JButton button = new JButton();
移动到mousePressed事件之外
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
JPanel panel = new JPanel();
panel.setSize(500, 500);
frame.add(panel);
frame.show();
run(panel);
}
public static void run(JPanel panel){
panel.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
JButton button = new JButton();
button.setVisible(true);
panel.add(button);
panel.revalidate();
}
});
}