JSplitPane, some problem
Hello,
I would like to have horizontal JSplitPane with two panels,
where one of them (bottom) should have always the same
height when we use only one touch expandables
(we assume, user doesn't use dragging of divider).
It is sample code:
import javax.swing.*;
import java.awt.*;
public class Swing5 {
public static void main(String[] args) {
new Swing5();
}
class MyPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D gDC2 = (Graphics2D)g;
gDC2.drawRect(0,0, 298,48);
gDC2.drawLine(0,0, 298,48);
}
}
public Swing5() {
JFrame f = new JFrame("Swing...");
f.setSize(300, 100);
Container c = f.getContentPane();
c.setLayout(new BorderLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel p1 = new MyPanel();
p1.setPreferredSize(new Dimension(300, 100));
MyPanel p2 = new MyPanel();
p2.setMinimumSize(new Dimension(0, 50));
p2.setMaximumSize(new Dimension(0, 50));
p2.setPreferredSize(new Dimension(300, 50));
JSplitPane sp1 = new JSplitPane();
sp1.setTopComponent(p1);
sp1.setBottomComponent(p2);
sp1.setDividerSize(15);
sp1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
sp1.setResizeWeight(1.0);
sp1.setOneTouchExpandable(true);
c.add(sp1);
f.pack();
f.setVisible(true);
}
}
Now, try to compile and run that application. Next:
1. press right one touch arrow -- bottom panel is now hidden.
2. maximalize application window, so it covers whole screen.
3. press left one touch arrow -- bottom panel is now shown, but
unfortunatelly it has bigger height than I wanted!!!
What to do, to make bottom panel having always the same height?
Thanks in advance for your help.
Regards,
Robbo