我正在我的应用程序中实现单选按钮,但是如果我对单个单选按钮有很长的文字,则需要将其自动换行,但目前它显示为单行。代码如下
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,即使希望选择文本,我也希望单选按钮被打勾。
对此的任何帮助都会有所帮助。
答案 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状态更改。创建外观/行为类似于单个按钮的东西。