【发布时间】:2015-08-04 04:02:47
【问题描述】:
我有一个包含表格的对话框。要求是在显示对话框时以可编辑模式显示单元格。以下是代码
class MyDialog extends JDialog
{
JTable tbl = new JTable(new Object[][]{new String[]{"a", "b"}, new String[]{"1", "2"}}, new String[]{"col1", "col2"});
public MyDialog(Frame frame)
{
add(tbl);
setSize(300, 300);
tbl.setCellEditor(new DefaultCellEditor(new JTextField()));
}
@Override
public void setVisible(boolean b)
{
super.setVisible(b);
if(b)
{
tbl.editCellAt(tbl.getRowCount() - 1, tbl.getColumnCount() - 1);
}
}
}
以下是展示方式
MyDialog d = new MyDialog(parent);
d.setLocationRelativeTo(btn);
d.setVisible(true);
问题是即使单元格处于编辑模式,光标也不会出现在文本字段中,直到用户单击。但是文字可以打字。
这段代码有什么遗漏或错误吗?
【问题讨论】:
-
两件事,尝试将
surrendersFocusOnKeyStroke设置为true并确保编辑器确实在窗口中具有焦点。