0

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

4

3 回答 3

1

JFrame已经BorderLayout在 API 中实现了,那么

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

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

不知道你团结起来想做什么

  1. 正确使用LayoutManager

  2. 利用JScrollPane

于 2012-07-09T19:23:57.420 回答
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);
于 2012-07-09T19:36:16.490 回答
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

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

于 2012-07-09T19:22:00.590 回答