如何改变codenameone中组件的大小(宽度和高度)

时间:2014-06-15 07:23:26

标签: java codenameone

我想在表单中添加一些组件,例如:button,label等。 我想为他们设置宽度和高度,但我找不到这样的属性。 有没有办法做到这一点?

编辑:

这是我在Main.java文件中的代码

currentForm = new Form();

currentForm.setLayout(new LayeredLayout());

currentForm.applyRTL(true);
Container mapContainer = new Container(new LayeredLayout());
Container controlsContainer = new Container(new BorderLayout());
controlsContainer.setRTL(true);
currentForm.addComponent(mapContainer);
currentForm.addComponent(controlsContainer);

Container panelTop = new Container(new BoxLayout(BoxLayout.X_AXIS));
Container panelDown = new Container(new FlowLayout(Component.RIGHT));
panelTop.setSize(new Dimension(40, 20));

controlsContainer.addComponent(BorderLayout.NORTH, panelTop);
controlsContainer.addComponent(BorderLayout.SOUTH, panelDown);

Button btnRoute = new Button(res.getImage("icon_routing.png"));
btnRoute.setSize(new Dimension(5, 5));
TextField txtSearch = new TextField();
txtSearch.setRTL(true);
txtSearch.setUIID("searchbox");
txtSearch.setEnabled(true);
// search textfield mode
txtSearch.putClientProperty("searchField", Boolean.TRUE);
txtSearch.setSize(new Dimension(8,10));
Button btnGPSFound = new Button(res.getImage("near_by_menu.png"));
btnGPSFound.setSize(new Dimension(5,5));

panelTop.addComponent(btnRoute);
panelTop.addComponent(txtSearch);
panelTop.addComponent(btnGPSFound);

currentForm.show();
btnRoute.setSize(new Dimension(30, 30));
btnRoute.refreshTheme();
panelTop.refreshTheme();     `

2 个答案:

答案 0 :(得分:3)

这取决于您选择的布局管理器,布局管理器根据许多约束(包括首选布局)确定运行时组件的大小。一些布局管理器会忽略一些首选布局值(这取决于几个方面)。

要查看布局管理器选项,请参阅:http://www.codenameone.com/how-do-i---positioning-components-using-layout-managers.html

要确定某些布局管理员将考虑的所需大小,请使用setPreferredSize()

答案 1 :(得分:1)

您可以通过调用组件上的setSize(width, height)来设置宽度和高度。