JEdi​​torPane垂直对齐

时间:2014-05-12 15:25:29

标签: java swing jeditorpane

我尝试将中心垂直对齐应用于JEditorPane中的文本。但文字仍然与顶部对齐。我在哪里弄错了?

    JEditorPane editor = new JEditorPane();
    editor.setText("..large text block..");
    editor.setAlignmentY(JEditorPane.CENTER_ALIGNMENT); // DOESN'T WORK

    JFrame frame = new JFrame();
    frame.setSize(600, 400);
    frame.setVisible(true);
    frame.add(editor);

1 个答案:

答案 0 :(得分:2)

我发现最好通过将组件放在JPanel中然后巧妙地为面板选择正确的布局管理器来进行任何特殊对齐。

JEditorPane editor = new JEditorPane();
editor.setBorder(BorderFactory.createLineBorder(Color.RED, 1));
editor.setText("..large text block..");
JScrollPane scrollPane = new JScrollPane(editor);

JPanel panel = new JPanel();
BoxLayout layout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(layout);
panel.add(Box.createVerticalGlue());
panel.add(scrollPane);
panel.add(Box.createVerticalGlue());


JFrame frame = new JFrame();
frame.setSize(600, 400);
frame.add(panel);

frame.setVisible(true);

这实际上只是将编辑器垂直居中,而不是编辑器中的文本,我认为这是你正在尝试的。有关BoxLayout的更多信息,请参阅http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html