【问题标题】:Change horizontal alignment of list box in MATLAB R2016a to right将 MATLAB R2016a 中列表框的水平对齐方式更改为右对齐
【发布时间】:2016-08-13 07:30:39
【问题描述】:

我们如何在 AppDesigner 或 GUIDE 的 MATLAB R2016 中将列表框的水平对齐方式更改为右对齐?列表框中没有任何可用的属性。

【问题讨论】:

  • 那是应用程序设计器还是指南?这些是 非常 不同的东西(一个基于 JS/CSS,另一个基于 Java)。如果你想用 App Designer 来做,你可能需要操作 .css 中的文件 %matlabroot%/toolbox/matlab/uitools/uifigureappjs/release/gbtclient/css/... 使用 GUIDE 应该相当容易......
  • @Dev-iL。目前我正在使用 AppDesigner 。我提到了两个方面来提出一个更普遍的问题。谢谢。
  • 仅在 GUIDE 中的解决方案是否可以接受?
  • @Dev-iL。 AppDesigner 更好:-)
  • @Dev-iL。我们在单选按钮等其他组件中也有同样的问题。

标签: matlab listbox matlab-guide matlab-app-designer


【解决方案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

结果:


App Designer 解决方案可以在this post 中找到。

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 2015-11-13
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多