我创建了一个框架和两个面板。
Jpanel pane11=new JPanel();
Jpanel pane12=new JPanel();
将panel2
添加到panel1
panel1.add(panel2);
getContentPane().add(panel1);
现在我将panel2
背景设置为白色且工作正常
我在JTextPanes
中创建了4 panel2
并使其可以拖动。
* 现在我的问题是:如果我将文本窗格从(0,0)拖到(10,10)并保存它,当我关闭时,文本窗格必须重新出现在(10,10)并重新打开框架。 那么如何在flowlayout *
中获取jtextpanes的位置我创建了保存按钮以保存面板中的更改,我正在使用panel2
的流布局。
我正在使用XML文件来保存位置。
答案 0 :(得分:2)
按照设计,FlowLayout
会在调整封闭Window
大小时将面板恢复到其计算位置。作为替代方案,请考虑JInternalFrame
,它支持直接拖动JDesktopPane
。使用Preferences API保留每个内部框架的位置。
答案 1 :(得分:0)
试试这个, 保存决赛和最终变数。
@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();
}
}
答案 2 :(得分:-1)
使用流程布局时无法保存位置。
如果您想自定义整个布局,可以使用
container.setLayout(null)
并明确地为每个组件提供位置和大小
setLocation(x,y)
setSize(w,h)