所以我的问题的主旨是 - 我有一个扩展JPanel的类,它还有许多其他swing / awt组件。它显示来自DB的一些数据。它沿着
的路线做了一些事情public class DataPanel extends JPanel
{
Lock lock;
public DataPanel()
{
lock = new Reenntractlock();
//init
}
public void update()
{
if(!lock.trylock())return;
//do update
lock.unlock();
}
public void edit()
{
lock.lock();
//etc etc
commit();
}
public void commit()
{
//etc etc;
lock.unlock();
}
}
我有一个事件监听器,只要点击一个按钮,就会调用编辑。单击另一个按钮时,它会调用commit。更新方法将由定时器调度程序(Timer类)定期调用
我想要完成的事情
(1)更新和编辑/提交是互斥的。不允许并发更新或编辑/提交。 (2)让更新操作延迟到用户停止编辑/提交
我的问题
(1)这是正确的吗?它会做我打算做的吗?我测试了一下它看起来很好,但我不确定。 (2)有没有更好的方法来实现这个目标
编辑:代码已更新