如何退出JFrame并将数据保持在相同的位置?

时间:2016-11-09 22:30:49

标签: java swing jbutton mouselistener

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中的保存按钮才能保存用户 最后移动了按钮。所以每次程序运行时, 按钮与之前的坐标相同 我不确定这是否可行,但如果你能解决这个问题会很棒 }

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。使用ObjectOutputSteamObjectInputStream是我个人的最爱。这个tutorial解释了如何使用它们。

或者您也可以简单地从文本文件中读取和读取。虽然我怀疑它是否有效。

祝你好运。