У меня есть uitable с 6 строками и 6 столбцами, и я хочу показать его в полноэкранном режиме, для этого я могу изменить ширину столбца, но не могу изменить высоту строки.
Extent - это размер uitable прямоугольника, но это свойства только для чтения.
Как изменить подходящую высоту ячейки (высоту строки) в Matlab?
Ответы (2)
При традиционных подходах единственная возможность изменить высоту строки — это настроить свойство 'FontSize'
.
Следующая функция даст вам полноэкранную таблицу. Вы можете настроить 'ColumnWidth'
и 'FontSize'
, пока они полностью не заполнят ваш экран.
function fancyTable
columnwidth = { 1920/2 1920/2 };
FontSize = 135;
h = figure('units','normalized','Position',[0 0 1 1],...
'numbertitle','off','MenuBar','none');
defaultData = rand(5,2);
uitable(h,'Units','normalized','Position',[0 0 1 1],...
'Data', defaultData,...
'ColumnName', [],'RowName',[],...
'ColumnWidth', columnwidth,...
'FontSize', FontSize,...
'ColumnEditable', [false false],...
'ColumnFormat', {'numeric' , 'numeric'});
end
Я не вижу простого решения для изменения высоты строки независимо от размера шрифта.
Но есть некоторые идеи в недокументированном Matlab.
" 7. Настройки JIDE ... Аналогично, в этом разделе объясняется, как мы можем использовать JIDE для объединения смежных ячеек: "
Может быть неудобным обходным путем, и примеров кода нет.
Вы можете, например. воспользуйтесь утилитой findjobj
с файлообменника. Это приведет вас к базовому объекту Java таблицы, где-то по строкам:
t = uitable(...);
scrollPane = findjobj(t);
% not 100% sure about this, but there'll be a `UITablePeer` object somewhere within that scrollPane
jTable = scrollPane.getComponent(0);
Этот jTable
будет иметь метод setRowHeight
, унаследованный от http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html