Java 在流布局中保存位置

Java 在流布局中保存位置,java,swing,jframe,persistence,jtextpane,Java,Swing,Jframe,Persistence,Jtextpane,我已经创建了一个框架和两个面板 Jpanel pane11=new JPanel(); Jpanel pane12=new JPanel(); 将panel2添加到panel1 panel1.add(panel2); getContentPane().add(panel1); 现在我将panel2背景设置为白色,它工作正常 我在panel2中创建了4个JTextPanes,并使其可拖动 *现在我的问题是:如果我将文本窗格从(0,0)拖动到(10,10)并保存它,当我关闭并重新打开框架时,文本

我已经创建了一个框架和两个面板

Jpanel pane11=new JPanel();
Jpanel pane12=new JPanel();
panel2
添加到
panel1

panel1.add(panel2);
getContentPane().add(panel1);
现在我将
panel2
背景设置为白色,它工作正常

我在
panel2
中创建了4个
JTextPanes
,并使其可拖动

*现在我的问题是:如果我将文本窗格从(0,0)拖动到(10,10)并保存它,当我关闭并重新打开框架时,文本窗格必须在(10,10)处重新出现。 那么,如何在flowlayout中获得jtextpanes的位置呢*

我已经创建了保存按钮来保存面板中的更改,我正在使用
panel2
的流布局


我正在使用XML文件保存位置。

使用流布局时无法保存位置

如果要自定义整个布局,可以使用

container.setLayout(null)
并明确给出每个组件的位置和大小

setLocation(x,y)
setSize(w,h)
试试这个, 保存finalx和finaly变量

@Override
public void mousePressed(MouseEvent e) {
    if (panel.contains(e.getPoint())) {
        dX = e.getLocationOnScreen().x - panel.getX();
        dY = e.getLocationOnScreen().y - panel.getY();
        panel.setDraggable(true);
    }
}

@Override
public void mouseDragged(MouseEvent e) {
    if (panel.isDraggable()) {
        finalx=e.getLocationOnScreen().x - dX;//save finalx and finaly
        finaly=e.getLocationOnScreen().y - dY;
        dX = e.getLocationOnScreen().x - panel.getX();
        dY = e.getLocationOnScreen().y - panel.getY();
    }
}

根据设计,
FlowLayout
将在调整封闭的
窗口的大小时将面板恢复到其计算位置。作为另一种选择,考虑一下,它支持直接在<代码> JDekTopPANE< /COD>中拖动。使用以保留每个内部帧的位置。

1)要更快获得更好的帮助,请发布一份到目前为止您拥有的内容。2) 您已经描述了一个问题,但到目前为止还没有提出任何问题(更不用说具体的、可回答的问题了)。您的问题是什么?有关保存
JFrame
属性的信息,请参阅。在探索所有其他可能性之前,不要建议
null
布局。在这种情况下,其他可能性为。。OP实际上希望在
流程布局中存储项目的索引,布局最好设置为自定义
DragAndDropLayout
,项目最好显示在
JList
中。。明显缺乏引导OP找到最佳答案所需的信息,因此我觉得这一阶段的任何答案在很大程度上都是推测性的。JInternal框架是否会自动调整Jtextarea大小。我在flow layout中看到它会自动调整textarea大小。JInternalFrameYes是否可能,取决于您在
JInternalFrame
中使用的布局<代码>边框布局
是默认设置。是否可拖动不起作用它向jpanel显示未使用IsDragable()