2016-08-13 2 views
1

Comment nous pouvons modifier l'alignement horizontal de la zone de liste vers la droite dans MATLAB R2016 dans AppDesigner ou GUIDE? Il n'y a aucune propriété disponible dans la zone de liste.Modifier l'alignement horizontal de la zone de liste dans MATLAB R2016a vers la droite

+1

De quoi s'agit-il alors - App Designer ou GUIDE? Ce sont des choses ** TRÈS ** différentes (l'une est basée sur JS/CSS et l'autre sur Java). Si vous voulez le faire avec App Designer, vous devrez peut-être manipuler les fichiers '.css' dans'% matlabroot%/boîte à outils/matlab/uitools/uifigureappjs/release/gbtclient/css/... 'Avec GUIDE, il devrait être assez facile ... –

+0

@ Dev-iL. Actuellement, j'utilise AppDesigner. J'ai mentionné deux aspects pour avoir une question plus générale. Merci. – user2991243

+1

Une solution uniquement dans GUIDE serait-elle acceptable? –

Répondre

1

Nous pouvons trouver des indices sur la façon de le faire avec GUIDE dans this UndocumentedMatlab article. Nous avons besoin de l'utilitaire findjobj pour avoir un aperçu du contrôle Java. Les prochaines étapes

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 

Le résultat:

Manipulation of Swing components


La solution App Designer se trouvent dans this post.