ka3*_*3ak 4 java swing jtextpane jcomponent alignment
目前它看起来如此

怎么做它看起来如此?

以下是我的代码:
JFrame f = new JFrame();
JTextPane textPane = new JTextPane();
JTextField component = new JTextField(" ");
component.setMaximumSize(component.getPreferredSize());
textPane.setSelectionStart(textPane.getDocument().getLength());
textPane.setSelectionEnd(textPane.getDocument().getLength());
textPane.insertComponent(component);
try {
textPane.getDocument().insertString(textPane.getDocument().getLength(), "text",
new SimpleAttributeSet());
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
f.add(new JScrollPane(textPane));
f.setSize(200, 100);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
我发现接近这个主题的单个问题:JTextPane插入组件,错误的垂直对齐 但是如何更改对齐没有答案.但根据那里的讨论,它必须是可能的.
您可以使用此http://java-sl.com/tip_center_vertically.html
它也应该合作JComponents.
您还可以覆盖LabelView's getPreferredSpan()在底部添加一些空格.
或者,您可以尝试覆盖RowView内部类ParagraphView
这指向内部类Row扩展BoxView
你应该用自己的替换它.试着覆盖
public float getAlignment(int axis)
Run Code Online (Sandbox Code Playgroud)
返回CENTER(0.5).如果这没有帮助覆盖layoutMinorAxis(0返回正确的偏移量(移位).