is to allow edit the cell only on Double click i.e. if user double clicks
on cell then only it comes into editable mode.
你看看DefaultCellEditor#clickCountToStart
cellEditor的或方法重载的isCellEditable(AbstractTableModel上)
@Override
public boolean isCellEditable(EventObject anEvent) {
if (anEvent instanceof MouseEvent) {
return ((MouseEvent) anEvent).getClickCount() >= clickCountToStart;
}
return true;
}
为的DefaultTableModel,它可能是
import javax.swing.*;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.*;
public class EditorRendererClickCountToStart {
public EditorRendererClickCountToStart() {
TableModel model = new DefaultTableModel(new Object[][]{
{"A", "Item 0"}, {"B", "Item 1"}, {"C", "Item 2"},
{"D", "Item 3"}, {"E", "Item 4"}}, new String[]{"TextField", "Combo"});
JTable table = new JTable(model);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
DefaultCellEditor editor = new DefaultCellEditor(new JComboBox(new Object[]{
"Item 0", "Item 1", "Item 2", "Item 3", "Item 4"}));
editor.setClickCountToStart(2);
table.getColumnModel().getColumn(1).setCellEditor(editor);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(table));
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
System.out.println(info.getName());
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (UnsupportedLookAndFeelException e) {// handle exception
} catch (ClassNotFoundException e) {// handle exception
} catch (InstantiationException e) {// handle exception
} catch (IllegalAccessException e) {// handle exception
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new EditorRendererClickCountToStart();
}
});
}
}
吸烟是不健康的,总是: - )+1为编辑,谢谢 – kleopatra 2012-04-02 10:17:11
@kleopatra谢谢,这就是问题在这个世界上真正健康的是什么,呃,......我是第一次得到它的。地方是笑,那么长久没有什么只有堆和第二。地方是Nutella?或....,也许,很难决定:-) – mKorbel 2012-04-02 10:33:09
@mKorbel谢谢。编辑只限于鼠标点击,对不起 - 正如我所问的那样,但如果用户开始键入使用文本的键盘,表格的单元格允许他这样做。我们是否可以限制他使用键盘进行编辑,除非他没有双击单元格。 – 2012-04-02 10:36:41