【问题标题】:How is possible to change size(width and height) of the component in codenameone如何在代号中更改组件的大小(宽度和高度)
【发布时间】:2014-06-18 18:22:21
【问题描述】:

我想在表单中添加一些组件,例如:按钮、标签等。 我想为它们设置宽度和高度,但我没有找到这样的属性。 有什么办法吗?

编辑:

这是我在 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();     `

【问题讨论】:

    标签: java codenameone


    【解决方案1】:

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

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

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

    【讨论】:

    • 我有一个场景,这不起作用,但根据 API 它应该:我有一个边框布局,其中包含一个容器,在 SOUTH 约束中具有可变数量的条目。只要容器不可滚动,设置容器的首选高度效果很好。 recentSearchContainer = new Container(new BoxLayout(BoxLayout.Y_AXIS)); recentSearchContainer.setPreferredH((int)(this.getContentPane().getHeight() * 0.1f)); 一旦设置容器可滚动,首选高度将被忽略。有没有办法解决这个问题?
    • 可滚动容器有自己的大小调整逻辑,我建议您提出问题,并附上您的最终目标的正确描述和屏幕截图
    【解决方案2】:

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

    【讨论】:

    • 在代号设计器中是否有另一种方法来赋予组件宽度和高度?
    • 我用 setSize 改变了组件的大小,但它仍然没有改变你能给我一个简单的例子吗
    • 我看到您将btnRoute 的大小设置了两次。您是否尝试在致电show() 之前仅设置一次新尺寸(30、30)?否则,请尝试对表单对象进行重绘。
    • 是的,他们都没有工作:|我给他们的每一件事他们都给了他们的默认值而不是我的
    • 好的。尝试对表单对象进行重绘。
    猜你喜欢
    • 2014-05-18
    • 2020-06-22
    • 2017-11-27
    • 2018-01-23
    • 2010-09-20
    • 2018-10-28
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    相关资源
    最近更新 更多