Java 在ChangeEvent时停止回转组件重新定位到初始坐标?

Java 在ChangeEvent时停止回转组件重新定位到初始坐标?,java,swing,netbeans,jfreechart,jtabbedpane,Java,Swing,Netbeans,Jfreechart,Jtabbedpane,我有一些可移动的对象(JLabels),用户将在运行时在父ChartPanel中重新定位它们。为了移动对象,我实现了(非常有用的)ComponentMover类,可以在这里找到:) 当它们移动时,它们的(x,y)坐标将显示回用户。我正在使用一个JTabbedPane,每个选项卡上显示两个对象的坐标(我试图发布一个屏幕截图,但我的名声不好不允许这样做) 问题是,当我更改选项卡时,对象将自己重新定位到我最初设置的坐标。我认为这与revalidate()或repaint()有关 我试图实现一个Chan

我有一些可移动的对象(
JLabel
s),用户将在运行时在父
ChartPanel
中重新定位它们。为了移动对象,我实现了(非常有用的)
ComponentMover
类,可以在这里找到:)

当它们移动时,它们的(x,y)坐标将显示回用户。我正在使用一个
JTabbedPane
,每个选项卡上显示两个对象的坐标(我试图发布一个屏幕截图,但我的名声不好不允许这样做)

问题是,当我更改选项卡时,对象将自己重新定位到我最初设置的坐标。我认为这与
revalidate()
repaint()
有关

我试图实现一个
ChangeListener

public static final ChangeListener
    relocateObjects = new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent e) {
            labelPole.setAlignmentX(polePositionX);
            labelPole.setAlignmentY(polePositionY);
            labelZero.setAlignmentX(zeroPositionX);
            labelZero.setAlignmentY(zeroPositionY);
        }
    };
jtabbed窗格上

tabbedPane.addChangeListener(ComponentMover.relocateObjects);
将对象重新定位到事件发生前存储的坐标,但无效

我试图找到一种方法来阻止对象侦听(从而响应)状态更改,或者简单地更新其默认位置以覆盖其初始坐标,您可能认为这是一种选择,但我失败了

我真的花了一整天的时间在这上面,所以我希望有一个解决方案或朝着正确的方向推进。多谢各位

问题是,当我更改选项卡时,对象将自己重新定位到我最初设置的坐标

您需要在包含要拖动的组件的面板上使用空布局:

panel.setLayout( null );

哦,高德,非常感谢你。最简单的解决方案。再说一次,我不能投票,但如果可以,我会的。