在我的程序中,我有一个 jPanel,里面有一个 jLabel。我添加了这段代码以使 jPanel 可拖动,并且效果很好。
private void formMousePressed(java.awt.event.MouseEvent evt) {
prevX = evt.getXOnScreen();
}
private void formMouseDragged(java.awt.event.MouseEvent evt) {
this.setLocation(this.getX() + evt.getXOnScreen() - prevX, this.getY());
prevX = evt.getXOnScreen();
// this.labBirthDate.setText(Integer.toString(this.getX()));
}
但是,当我添加注释掉的代码时,它会更新标签以显示面板的位置,它停止工作。具体来说,当我单击并拖动以移动面板时,而不是跟随鼠标,面板只是有点口吃,文本变为 ~10 的值,每当我移动鼠标时都会发生变化。
让事情变得更加混乱,如果我改为将其更改为仅将文本设置为“blah”,则不会产生错误。同样,如果我只是将一个变量设置为等于 this.getX(),它不会产生错误。如果我随后将标签设置为该局部变量的值,则会返回错误。
有谁知道为什么会发生这种情况?有没有我可以用来获得相同效果的解决方法?