я следующее средство визуализации и подсказки в пределах моего методарендерер после фильтра, строки больше не выделены
tableR = new JTable(modelR)
{
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
Font myFont = new Font("Arial",Font.PLAIN,10);
Font myFont1 = new Font("Arial", Font.BOLD,10);
if (!isRowSelected(row)) {
if (tableR.getColumnCount() >= 0) {
String type = (String) getModel().getValueAt(row, 11);
c.setBackground("0.0".equals(type) ? Color.RED : Color.WHITE);
c.setForeground("0.0".equals(type) ? Color.WHITE : Color.BLACK);
c.setFont("0.0".equals(type) ? myFont1: myFont);
}
}
return c;
}
@Override
public String getToolTipText(MouseEvent e) {
String tip = null;
java.awt.Point p = e.getPoint();
int rowIndex = rowAtPoint(p);
int colIndex = columnAtPoint(p);
int realColumnIndex = convertColumnIndexToModel(colIndex);
if (realColumnIndex != 20) { //Sport column
tip = " " + getValueAt(rowIndex, colIndex);
//tip = super.getToolTipText(e);
}
return tip;
}
};
Это будет применяться после каждого обновления метода, который происходит каждые 10 секунд.
У меня также есть метод фильтра слушателя на столе этого принимает вид:
private void filter2method() {
filterR.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void removeUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void changedUpdate(DocumentEvent e) {
newFilter();
}
private void newFilter() {
RowFilter <DefaultTableModel, Object>rf =null;
try {
rf = RowFilter.regexFilter(filterR.getText(),2);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
} }
);
}
Однако при фильтрации не мой стол рендерер больше не выделяет правильные строки в красном ..ie те, которые являются 0,0
Как с этим справиться? Нужно ли мне удалить рендер, а затем повторно применить его? Должен ли я включить метод рендеринга в метод фильтра. Помогите оценить.
@ TT визуализатор прекрасно работает, однако проблема заключается в том, что после того, как я фильтровать таблицу в качестве документа слушателя, блика нет вот nger подсвечивает правильную строку, потому что в таблице теперь меньше строк. Мне нужна подсветка, чтобы выделить новую отфильтрованную таблицу. – Ingram
@MrAssistance Позвольте мне сначала спросить, применили ли вы обе версии того, что я ответил, и вы видели одно и то же поведение в обоих случаях? –
@ TT У меня нет ничего, потому что я не думаю, что проблема кроется здесь - проблема в том, что после того, как я набираю фильтр, он фильтрует модель таблицы, а затем выделенные строки больше не выделяют правильные строки. Я думаю, потому что подсветка фиксирована на текущей таблице. – Ingram