У меня есть пользовательский JTable (15 строк по 20 столбцов), который был создан для работы со всеми JComponents.В настоящее время я использую его для смеси JComboBoxes, JTextFields и JButtons.О, и я использую Java5 (требование).
У меня два вопроса:
1) Первый касается класса TableCellRenderer и его единственного метода:
public Component getTableCellRendererComponent(final JTable table,
final Object value,
final boolean isSelected,
final boolean hasFocus,
final int row,
final int column) {...}
Все, что он делает, это приводит аргумент Object value
к JComponent и потенциально меняет цвет фона.Ничего страшного.У меня вопрос, почему этот метод часто называется оооочень?При выборе одной ячейки она вызывается 23 раза.Когда Alt-Tabbing между двумя UNRELATED приложениями (я использую Win7), этот метод вызывается более 200 раз (и только для JButtons и JTextFields)!Нужно ли это каким-либо образом, и если нет, как я могу положить конец ненужным вызовам рендеринга?
2) Второй вопрос касается самой JTable.Когда я редактирую ячейку (курсор в JTextField и мигает) и щелкаю по другой ячейке, эта ячейка только выделена.Если я затем нажму на другую ячейку, я начну редактировать эту ячейку.Все, что я могу думать, это то, что из исходного компонента редактирования я выбираю JTable, а затем выбираю компонент внутри.Есть ли способ изменить это?Либо идти в одну сторону (всегда выбирает jtable при первом клике), либо другой (всегда входит в ячейку при первом клике).Я бы предпочел первый вариант, если это возможно.
Спасибо всем, кто может дать некоторое понимание / помощь!