我正在尝试在 Swing 中扩展 StyledEditorKit 以便能够在编辑器中包含 JLabel。我能够做到这一点,这就是我到目前为止所得到的。在下图中,突出显示的文本按钮是 JLabel 类型,而其余文本是普通文本。
如您所见,标签呈现的内容比普通文本略低。如何将其顶部与剩余文本的顶部对齐?
以下是用于创建此标签元素的视图代码:
class ComponentView(Element elem) {
@Override
protected Component createComponent() {
JLabel lbl = new JLabel("");
lbl.setOpaque(true);
lbl.setBackground(Color.red);
try {
int start = getElement().getStartOffset();
int end = getElement().getEndOffset();
String text = getElement().getDocument().getText(start, end - start);
lbl.setText(text);
} catch (BadLocationException e) {}
return lbl;
}
}