package dragbutton_test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DragButton_test extends JButton{
private int draggedAtX, draggedAtY;
public DragButton_test(String text){
super(text);
setDoubleBuffered(false);
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
draggedAtX = e.getX();
draggedAtY = e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter(){
@Override
public void mouseDragged(MouseEvent e){
setLocation(e.getX() - draggedAtX + getLocation().x,
e.getY() - draggedAtY + getLocation().y);
}
});
}
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("Save");
button.setBounds(300, 480, 75, 25);
frame.add(button);
DragButton_test one = new DragButton_test("Michael");
one.setBounds(0, 10, 85, 25);
frame.getContentPane().add(one);
DragButton_test two = new DragButton_test("Bob");
two.setBounds(0, 40, 85, 25);
frame.getContentPane().add(two);
DragButton_test three = new DragButton_test("Joe");
three.setBounds(0, 70, 85, 25);
frame.getContentPane().add(three);
frame.setResizable(false);
frame.setLayout(null);
frame.getContentPane();
frame.setSize(700, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
我需要JFrame中的保存按钮才能保存用户 最后移动了按钮。所以每次程序运行时, 按钮与之前的坐标相同 我不确定这是否可行,但如果你能解决这个问题会很棒 }
答案 0 :(得分:1)
有很多方法可以做到这一点。使用ObjectOutputSteam和ObjectInputStream是我个人的最爱。这个tutorial解释了如何使用它们。
或者您也可以简单地从文本文件中读取和读取。虽然我怀疑它是否有效。
祝你好运。