gpt4 book ai didi

java - 代号一 ListCellRenderer

转载 作者:行者123 更新时间:2023-11-30 08:27:42 24 4
gpt4 key购买 nike

我正在尝试创建一个包含三个文本区域的 ListCellRenderer。在构造函数中,我创建了一个空容器,设置其布局,为文本区域设置样式并将文本区域添加到容器中。此容器 ID 进一步添加到渲染器组件。此外,我在 getListCellRendererComponent() 方法中为我的 TextAreas 设置值。以下是我的代码:

 class PropertiesRenderer extends Container implements ListCellRenderer<PropertyAssessmentData> {

private TextArea name = new TextArea("");
private TextArea assessedValue = new TextArea("");
private TextArea address = new TextArea("");
private Label focus = new Label("");

public PropertiesRenderer() {
setLayout(new BorderLayout());
Container con = new Container(new BoxLayout(BoxLayout.Y_AXIS));
con.getStyle().setBorder(Border.createBevelRaised());
name.setEditable(false);
name.getStyle().setBorder(null);
con.addComponent(name);
assessedValue.setEditable(false);
assessedValue.getStyle().setBorder(null);
con.addComponent(assessedValue);
address.setEditable(false);
address.getStyle().setBorder(null);
con.addComponent(address);
addComponent(BorderLayout.CENTER, con);
}

public Component getListCellRendererComponent(List list, PropertyAssessmentData value, int index, boolean isSelected) {
name.setText("Name: " + value.getOwner_Name());
assessedValue.setText("Total Value: " + value.getTotal_Value());
address.setText("Address: " + value.getAddress());
return this;
}

public Component getListFocusComponent(List list) {
return focus;
}

}

现在的问题是它正确显示所有内容,直到文本区域只有一行。一旦文本区域有多行,它就会开始隐藏组件。我认为这与 CN1 在不知道组件将包含的数据并因此默认的情况下计算组件的大小有关。这是真的 ?有解决方法吗?附上截图

enter image description here

最佳答案

渲染器具有统一的大小我在本周早些时候写的博客中详细解释了为什么会出现这种情况:https://www.codenameone.com/blog/deeper-in-the-renderer.html

如果您需要更大的灵 active ,我建议您只使用 Y 型布局的容器。

关于java - 代号一 ListCellRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com