我需要多行的切换按钮,因为其中一些的文本很长。我试图扩展 CheckBox 以创建一个 SpanToggleCheckBox,但它不起作用,因为没有显示任何文本。以下代码有什么问题?我怎样才能达到我的目的?
public class SpanToggleCheckBox extends CheckBox {
private TextArea textArea;
/**
* Constructs a toggle checkbox with the given text
*
* @param text to display
*/
public SpanToggleCheckBox(String text) {
textArea = new TextArea(getUIManager().localize(text, text));
textArea.setActAsLabel(true);
textArea.setColumns(textArea.getText().length() + 1);
textArea.setUIID("Label");
textArea.setEditable(false);
textArea.setFocusable(false);
this.setUIID("CheckBox");
super.setToggle(true);
}
/**
* {@inheritDoc}
*/
@Override
public void paint(Graphics g) {
getUIManager().getLookAndFeel().drawTextArea(g, textArea);
}
/**
* {@inheritDoc}
*/
@Override
protected Dimension calcPreferredSize() {
return getUIManager().getLookAndFeel().getTextAreaSize(textArea, true);
}
/**
* Shorthand for creating the SpanToggleCheckBox
*
* @param text the text for the button
* @return a check box
*/
public static SpanToggleCheckBox createToggle(String text) {
SpanToggleCheckBox cb = new SpanToggleCheckBox(text);
return cb;
}
}