I want to set the size of the JTextPane according to the size of the panel so that when i add other panels, it changes accordingly. But it just gives a small text pane in the center and when i add some text, it's size changes accordingly.
JPanel panel = new JPanel();
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane();
pane.add(txt);
panel.add(pane,BorderLayout.CENTER);
add(pane);
now the jtextpane just appears at the center of the screen like a small box. I want it to appear according to the size of the panel
JPanel
uses FlowLayout
by default which sizes components according to their preferred sizes. You can use BorderLayout
which will use the maximum area possible.
Also using constraints such as BorderLayout.CENTER
has no effect unless the container is actually using BorderLayout
. Dont add
components to the JScrollPane
. This will replaces all components within the view of the component. Instead set the JTextPane
as the ViewPortView
, for example
JPanel panel = new JPanel(new BorderLayout());
JTextPane txt = new JTextPane();
JScrollPane pane = new JScrollPane(txt);
// pane.add(txt); remove
panel.add(pane, BorderLayout.CENTER);
Read: