2016-07-07 51 views
0

我正在使用Java SWT来制作具有统一工具栏的本机外观Mac OSX应用程序。问题是,我把这个工具栏上的按钮是越来越剁掉(如工具栏不足够大的按钮): http://i.stack.imgur.com/jiuer.pngJava SWT Mac统一工具栏布局问题

这里是我的代码:

Display display = new Display(); 
Shell shell = new Shell(display); 

ToolBar toolbar = shell.getToolBar(); 
Button toolButton = new Button(toolbar, SWT.PUSH); 
toolButton.setText("This button is chopped off"); 
toolButton.pack(); 

shell.open(); 
while (!shell.isDisposed()) { 
    if (!display.readAndDispatch()) { 
     display.sleep(); 
    } 
} 
display.dispose(); 

任何想法上如何解决这个问题?

回答

0

所有SWT插件具有方法:

setBounds(x, y, width, height); 

此方法用于设置尺寸和小部件的位置。

所以你要做的:

toolbar.setBounds(x, y, w, h); 
toolButton.setBounds(x2, y2, w2, h2); 

,你能画完全按照你想要的外壳。

+0

不管大小我设置的界限来,该按钮会不会适合在工具栏中。我尝试将边界中的高度设置得高于所需的高度,并且工具栏的大小也不会改变。 –

+0

你是否尝试修改shell边界?你必须正确定义所有边界。 – emish89

0

ToolBar的JavaDoc的说:

该项目的孩子,可以添加到这个类的实例必须是ToolItem类型的 。

所以:

ToolBar toolbar = parent.getToolBar(); 

ToolItem toolItem = new ToolItem(toolbar, SWT.PUSH); 
toolItem.setText("This toolitem is not chopped off"); 
+0

Mac统一工具栏似乎并不是这样,应用程序在工具栏中使用许多不同的小部件: https://gyazo.com/0c6acbe984172fa39af13dbfebe8daab 我开始使用ToolItems,但无法获得我想要的效果(像上一张图​​片中的按钮)。 –

+0

您可以添加其他控件,但它们不包含在工具栏深度的计算中。 –