今天这篇文章主要实现双击修改的功能,话说这java的winform程序实在是令人崩溃,各种问题搞得我神志不清。
那么这个功能就是双击Jtable中的某一行,然后弹出修改界面,修改完之后数据刷新到Jtable中。同时,这个修改界面还支持页码变化,即可以点击上一页,下一页等按钮抓取Jtable中对应行的数据。
先看双击事件,在C#中DataGridView有双击事件,可是JTable没有。怎么办呢?大家不知道看没看过我的另一篇文章,Silverlight MVVM切近实战主界面的双击实现,今天java这个双击和那个类似,原理就是监控两次单击在指定的时间段内完成的话算双击。
TimerTask timTsk;
Timer tim = new Timer();
Boolean isTimerRuning = true;
String ename=\"\";
private void TimTaskInit() {
timTsk = new TimerTask() {
public void run() {
isTimerRuning = false;
}
};
tim.schedule(timTsk, 200, 200);
}
private void ShowModifyForm() throws IllegalArgumentException,
IllegalAccessException {
if (isTimerRuning) {
isTimerRuning = false;
FrmCodeModify frmCodeModify = new FrmCodeModify(table,this);
frmCodeModify.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
StartMain.SetMidScreen(frmCodeModify);
frmCodeModify.setVisible(true);
} else {
TimerScheduleReset(timTsk);
isTimerRuning = true;
tim.schedule(timTsk, 200, 200);
}
}
private void TimerScheduleReset(TimerTask timTsk) {
Field field;
try {
field = TimerTask.class.getDeclaredField(\"state\");
field.setAccessible(true);
try {
field.set(timTsk, 0);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-ge