因此,当我创建一个JTextPane并将其添加到JFrame时,它会填充框架,随之移动。我如何阻止这一点,以便我可以做pane.setSize?
答案 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
不知道你想要做什么
使用正确的LayoutManager
使用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);