Я использую сетки JIDE для загрузки огромных таблиц данных в удобном формате. Моя основная причина использования сетки JIDE заключалась в том, чтобы иметь работающую возможность фильтрации и сортировки. Доступны фильтры/сортировщики, которые можно подключить к старому uitable и которые проще настроить, но большинство из них сортируются лексически, а не численно. Я считаю, что это связано с базовым классом данных Matlab.
Пока что встроенная фильтрация JIDE работает хорошо, и uitable загружается даже быстрее, чем старая версия uitable в Matlab, когда я загружаю почти 500x35 смешанных типов данных. Но есть несколько других вещей, которые я хотел бы настроить, но я не нашел ссылок на них в документации JIDE.
1) Кто-нибудь знает, как добавить столбец с номером строки в реализации JIDE? (так же, как заголовок номера строки в старых/новых подходящих конфигурациях). Я пытался использовать утилиту findobj и inspect (от Яира Альтмана), чтобы найти их и включить, но они, кажется, полностью отсутствуют. Или я что-то упустил!
2) Когда мы выбираем «пользовательский фильтр» в раскрывающемся списке столбцов и выбираем «есть», «не равно» или «больше, чем», отображается вкладка выбора даты, как мы можем удалить эту вкладку. Если это невозможно или сложно, как я могу удалить эти параметры?
3) Наконец, как я могу установить количество десятичных знаков, отображаемых в сетке?
Код для воспроизведения проблем.
% calling old uitable for performance reasons
f1=figure;
[h_Old,containter] = uitable('v0','data',magic(5),'ColumnNames',{'A','B',...
'C','D','E'},'Position',[5 5 500 400],'Parent',f1);
set(h_Old,'Units','normalized','Editable',false);
% Anotherway: JIDE grids even faster in setting up uitable with huge data
data=num2cell(magic(5));
jtable=com.jidesoft.grid.SortableTable(data,{'A','B','C','D','E'});
theader = com.jidesoft.grid.AutoFilterTableHeader(jtable);
theader.setAutoFilterEnabled(true)
theader.setShowFilterName(true)
theader.setShowFilterIcon(true)
jtable.setTableHeader(theader)
jscroll = javax.swing.JScrollPane(jtable);
f2=figure;
[h_old_2,container_2] = javacomponent(jscroll,[5,5,500,400],f2)
set(container_2,'Units','norm');
Спасибо за ваше время и помощь.