JEditorPane vertical aligment

感情迁移 提交于 2019-12-11 11:09:31

问题


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


回答1:


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



来源:https://stackoverflow.com/questions/23613016/jeditorpane-vertical-aligment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!