将单选按钮的长文本换成codenameone

时间:2018-11-28 16:55:45

标签: codenameone

我正在我的应用程序中实现单选按钮,但是如果我对单个单选按钮有很长的文字,则需要将其自动换行,但目前它显示为单行。代码如下

ButtonGroup buttonGroup = new ButtonGroup();
for (int i = 0; i < (model).getItemCount(); i++)
        {
            String optionLabelStr = (model).getItem(i);
            RadioButton button = new RadioButton(optionLabelStr);
            button.addActionListener(this);
            button.setOppositeSide(false);
            cont.addComponent(button);
            buttonGroup.add(button);
            }

我尝试通过将UIID设置为Spanlabel来使用textarea,但是当我选择文本时,它不会标记为单选按钮,但是如果我选择单选按钮,它就可以正常工作。因此,如果我使用textarea,即使希望选择文本,我也希望单选按钮被打勾。

对此的任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:1)

RadioButton来自Button,而Label来自SpanButton。他们不能包扎。包装文字是一项复杂的功能,如果我们为所有组件引入文字,则会严重影响性能和功能。但是,使用引线组件很容易做到这一点。实际上RadioButton button = new RadioButton(); TextArea textOfButton = new TextArea(optionLabelStr); textOfButton.setEditable(false); textOfButton.setUIID("RadioButton"); Container lead = BorderLayout.centerEastWest(button, textOfButton, null); lead.setLeadComponent(button); button.addActionListener(this); buttonGroup.add(button); cont.addComponent(lead); 是主要成分。

因此您可以执行以下操作:

lead

您在这里有效执行的操作是将按钮与文本一起包装。然后使文本看起来像单选按钮的文本。

最后,您要定义线索组件。这意味着<FormItem label="Sales Tax Code"> {getFieldDecorator('SalesTaxCodeID', { initialValue: "", rules: [{ required: true, message: 'Please Select a Sales Tax Code!', }], })( <select value={'TaxID'} style={{'width':'212px','height':'32px'}}> <option value='0'>Select A Sales Tax Code</option>} {this.props.salesTaxList.length && this.props.salesTaxList.map((value, index)=>( <option value={value.TaxID} key={index} >{value.SalesTaxCode}</option> ))} </select> )} </FormItem> 中的所有点击都将转到单选按钮,它将处理所有事件和UI状态更改。创建外观/行为类似于单个按钮的东西。