2016-08-13 24 views
1

如何在AppDesigner或GUIDE中的MATLAB R2016中將列表框的水平對齊更改爲正確?列表框中沒有任何可用的屬性。在MATLAB R2016a中將列表框的水平對齊更改爲正確

+1

這就是 - App Designer或者GUIDE?這些**非常**不同的東西(一個基於JS/CSS,另一個基於Java)。如果你想用App Designer來做,你可能需要操作'%matlabroot%/ toolbox/matlab/uitools/uifigureappjs/release/gbtclient/css/...'中的'.css'文件。相當容易... –

+0

@ Dev-iL。目前我正在使用AppDesigner。我提到了兩個方面有一個更普遍的問題。謝謝。 – user2991243

+1

只有GUIDE中的解決方案可以接受嗎? –

回答

1

我們可以在this UndocumentedMatlab article中找到一些關於如何使用GUIDE做到這一點的線索。我們需要findjobj實用程序來獲取Java控件的句柄。接下來的步驟

function q38930371 

hF = figure(... 
'Position',[500 500 300 350],... 
'Tag','Demo',... 
'Menubar','None',... 
'Resize','on'); 

hLb = uicontrol(... 
'Parent',hF,... 
'String',{ 'Item 1'; 'Item 2'; 'Item 3'; 'Item 4' },... 
'Style','listbox',... 
'Value',1,... 
'Position',[50 50 200 250],... 
'Children',[],... 
'Tag','listbox1'); 

% Get a handle to the Java control: 
jSp = findjobj(hLb); 

% Get the list cell renderer 
jCr = jSp.getViewport.getView.getCellRenderer; 

% Set the horizontal alignment of the renderer: 
% https://docs.oracle.com/javase/7/docs/api/javax/swing/DefaultListCellRenderer.html 
jCr.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 

% Refresh view: 
jSp.repaint 

結果:

Manipulation of Swing components


應用設計解決方案可以在this post找到。