Java 如何在JScrollPane中居中放置组件?

Java 如何在JScrollPane中居中放置组件?,java,swing,netbeans,center,Java,Swing,Netbeans,Center,这是我的代码,我想在JScrollPane中居中放置JTextPane: JFrame frame = new JFrame("Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JTextPane editor = new JTextPane(); editor.setEditorKit(this); JScrollPane scroll = new JScroll

这是我的代码,我想在JScrollPane中居中放置JTextPane:

    JFrame frame = new JFrame("Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    final JTextPane editor = new JTextPane();
    editor.setEditorKit(this);
    JScrollPane scroll = new JScrollPane(editor);
    //scroll.setAlignmentX(JScrollPane.CENTER_ALIGNMENT); <<<didnt change anything, so //'ed it

    frame.getContentPane().add(scroll);

    frame.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds());
JFrame=newjframe(“示例”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
最终JTextPane编辑器=新的JTextPane();
editor.setEditorKit(this);
JScrollPane scroll=新的JScrollPane(编辑器);

//scroll.setAlignmentX(JScrollPane.CENTER_ALIGNMENT) 问题可能是框架的布局。首先,您必须设置框架的大小并设置对齐方式。

通过@Mr.Cool+1添加到答案中

  • JFrame默认实现了BorderLayout,然后代码行
    frame.getContentPane().add(滚动)将所有可用空间填充到JFrame中

  • 您有两个选择:

    a) 将另一个
    JComponents
    (可以是空的
    JPanels
    )添加到
    北部
    南部
    西部
    东部
    ,然后
    JScrollPane
    可以使用
    JFrame
    调整大小

    b) 对
    JFrame
    使用
    GridBagLayout
    (没有任何
    GridBagConstant
    ),则
    JScrollPane
    无法使用
    JFrame
    调整大小


您所说的“将组件放在JScrollPane中居中”是什么意思?在您的示例中,
JScrollPane
拉伸以填充
JFrame
的内容窗格,
JTextPane
拉伸以填充
JScrollPane
。我不明白在那种情况下“中心”是什么意思。