JEditorPane vertical aligment
Asked Answered
B

1

1

I try to apply center vertical aligment to text in JEditorPane. But text still is aligned to the top. Where did I mistake?

    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);

Breslau answered 12/5, 2014 at 15:25 Comment(4)
Please edit your question to include an mcve that shows your approach in context.Hypercatalectic
Are you looking for centering vertical aligment to text in JEditorPane? or you want to place the widget in the center only?Cartercarteret
Braj, the solution to place the widget in the center is simpler. Your answer is works, but one is too complex. Thanks for spend time to answer!Breslau
Find it here Centering text vertically in JEditorPane.. For more info have a look at this thread Vertical Alignment of Text in JEditorPaneCartercarteret
J
2

I find it is always best to do any special alignment by placing your components in a JPanel and then smartly choosing the correct layout manager for the panel.

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);

This really just centers the editor vertically, not the text within the editor which I think is what you are trying for. For more on BoxLayout see http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

Josephjosepha answered 12/5, 2014 at 17:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.