У меня JComboBox в моем столе. Если пользователь выбрал «Другие» из ComboBox, мне нужно скрыть столбец номер 3 в таблице.Actionlisterner изменить всю строку
Код
final TableColumn col5 = jTable1.getColumnModel().getColumn(4);
col5.setPreferredWidth(150);
final String EDIT = "edit";
String[] options = new String[]{"Font Issue", "Text Issue", "Image Issue", "AI Issue", "Others"};
JComboBox combo1 = new JComboBox(options);
JComboBox combo2 = new JComboBox(options);
col5.setCellEditor(new DefaultCellEditor(combo1));
col5.setCellRenderer(new ComboBoxRenderer(combo2));
combo2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String newSelection = col5.getCellEditor().getCellEditorValue().toString();
String strOthersRemark = "";
if (newSelection.equalsIgnoreCase("others")) {
jTable1.removeColumn(jTable1.getColumnModel().getColumn(3));
}
}
});
код работает нормально, но с одной небольшой проблемой. Когда пользователь выбирает другие его удалить весь столбец вместо этого row.For пример
Row|Column1 | Column2 | Column3 | Column4 |
1 | Test11 | Test12 | Test13 | Test14 |
2 | Test21 | Test22 | Test23 | Test24 |
3 | Test31 | Test32 | Test33 | Others |
Когда пользователь выбирает column4, как Others
он должен скрыть Test33
, а не весь Column3
. Мой код удаляет весь Column3
. Что я должен делать, если я хочу, чтобы скрыть Test33
только
то, что вы делаете ** неправильно ** (как уже отмечалось в одном из своих предыдущих вопросов) - это с ума, чтобы действовать на состояние визуализатор (который в лучшем случае непредсказуем) – kleopatra
Я не понял. Можете ли вы уточнить, чтобы я мог исправить свой код. –
это так же просто, как: не слушать компоненты _rendering_, не обращаться к компонентам _editing_ - оба не имеют смысла. Никакое преступление не означало, но если вы этого не понимаете, пришло время обновиться на Основах Swing ;-) – kleopatra