如何为JTextPane提供与主JFrame不同的宽度?

时间:2012-07-09 19:16:57

标签: java swing jframe jtextpane

因此,当我创建一个JTextPane并将其添加到JFrame时,它会填充框架,随之移动。我如何阻止这一点,以便我可以做pane.setSize?

3 个答案:

答案 0 :(得分:1)

最简单的方法是创建一个JPanel并将JTextPane添加到面板中。然后,您可以将面板添加到框架中。

JPanel panel = new JPanel();
panel.setLayout(null);

JTextPane pane = new JTextPane();

panel.add(pane);

this.add(panel); //assuming that this extends JFrame

您现在应该能够适当调整文本窗格的大小。

答案 1 :(得分:1)

JFrame已在API中实施BorderLayout,然后

JFrame.add(JTextPane)等于JFrame.add(JTextPane, BorderLayout.CENTER)

如果只有一个JComponent放入JFrame,则(中心区域)会填充所有返回容器的Dimension

不知道你想要做什么

  1. 使用正确的LayoutManager

  2. 使用JScrollPane

答案 2 :(得分:1)

创建一个新的gridBagLayout并相应地设置GridBagConstraints。

Container pane;
pane.setLayout(new GridBagLayout());
    GridBagConstraints c;
    c = new GridBagConstraints();
    c.fill = GridBagConstraints.BOTH;
    c.ipady = 0;
    c.weightx = 1.0;
    c.weighty = 1.0;
    c.insets = new Insets(2, 2, 2, 2);
    c.gridx = 0;
    c.gridy = 0;
    pane.add(jsp, c);
     pane.setBackground(Color.cyan);
    getContentPane().add(pane);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setTitle("TITLE");
    setLocation(150, 50);
    pack();
    setSize(600, 800);