/*
当按回车键时,表格Cell的焦点将按从左到右排列。
下面这两句话很重要
dataTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),"moveForward");
dataTable.getActionMap().put("moveForward",moveForward);
*/
Action moveForward = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
int rowCount=dataTable.getRowCount();
int colCount=dataTable.getColumnCount();
int selRow=dataTable.getSelectedRow();
int selCol=dataTable.getSelectedColumn();
if(selCol==colCount-1)
{
if(selRow==rowCount-1)
{
selCol=-1;
selRow=0;
}
else
{
selCol=-1;
selRow++;
}
}
else if(selCol==0) //当第一列获得焦点时,将跳过后来两格到第四列
{
selCol=selCol+2;
}
dataTable.changeSelection(selRow,selCol+1,false,false);
dataTable.editCellAt(selRow,selCol+1);
if(dataTable.getEditorComponent()!=null)
dataTable.getEditorComponent().requestFocus();
}
}; dataTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),"moveForward");
dataTable.getActionMap().put("moveForward",moveForward);
当按回车键时,表格Cell的焦点将按从左到右排列。
下面这两句话很重要
dataTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),"moveForward");
dataTable.getActionMap().put("moveForward",moveForward);
*/
Action moveForward = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
int rowCount=dataTable.getRowCount();
int colCount=dataTable.getColumnCount();
int selRow=dataTable.getSelectedRow();
int selCol=dataTable.getSelectedColumn();
if(selCol==colCount-1)
{
if(selRow==rowCount-1)
{
selCol=-1;
selRow=0;
}
else
{
selCol=-1;
selRow++;
}
}
else if(selCol==0) //当第一列获得焦点时,将跳过后来两格到第四列
{
selCol=selCol+2;
}
dataTable.changeSelection(selRow,selCol+1,false,false);
dataTable.editCellAt(selRow,selCol+1);
if(dataTable.getEditorComponent()!=null)
dataTable.getEditorComponent().requestFocus();
}
}; dataTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),"moveForward");
dataTable.getActionMap().put("moveForward",moveForward);
解决方案 »
- Hibernate 创建的表找不到
- namespace出现错误!! 找不到Action!! 帮帮忙啊 大家
- android 错误,我是菜鸟,希望有人帮着解决一下。
- EJB3.0中的实体bean的继承问题
- jsp+access的项目有几个小问题,悬赏50~~找可以帮忙调试的人~~
- 高人指路[.net->Java]
- Hibernate2.1.6存储繁体中文到Oracle的问题
- 请教一个hibernate中generator的问题!谢谢
- 50分请教各位JAVA高手1个小问题。急,求救!!分不够可以再给!!
- 寻特效窗口代码!
- Struts问题。
- intle和moto的手机开发大赛,小弟要组队参赛,有意向的,顶一顶啊!快!!!!!!!!
现在用Tab键和Shift+Tab就能在Cell之间移动,能不能调用什么设置来用Enter和Shift+Enter替换掉达到想要的效果?
不能使用KeyboardFocusManager进行这样的焦点控制?
JTable jt = new JTable();
java.util.Set aaa = new java.util.HashSet(1);
aaa.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER,1));
jt.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,aaa);
jt.setModel(test);这样的方法设定Shift+Enter为focusTraversalKeys为什么不行呢?老是跳不出原来的Cell郁闷ing~~~~~~~~~~我看到的一种写法是抓到选中的Cell的Row和Column,然后Column上+1......