Java – jsplitpane: is there any way to show / hide one of the panes?
•
Java
I have a jsplitpane with two components a and B, but sometimes I want to be able to hide B to meet any of the following conditions:
>Components a and B are visible in jsplitpane > only component A is visible in the space occupied by jsplitpane
Is there any way to do this?
Solution
Oh, I'll try the solution
import java.awt.Dimension; import java.awt.event.*; import javax.swing.*; public class Test { public static void main(String[] args) { JFrame frame = new JFrame(); final JPanel contentPane = (JPanel)frame.getContentPane(); final JButton leftBtn = new JButton("Left Button"); final JButton rightBtn = new JButton("Right Button"); final JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftBtn,rightBtn); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) { JButton source = (JButton)e.getSource(); if (jsp.isVisible()) { jsp.remove(rightBtn); jsp.remove(leftBtn); jsp.setVisible(false); contentPane.removeAll(); contentPane.add(source); } else { contentPane.removeAll(); jsp.setLeftComponent(leftBtn); jsp.setRightComponent(rightBtn); jsp.setDividerLocation(0.5); jsp.setVisible(true); contentPane.add(jsp); } contentPane.revalidate(); contentPane.repaint(); source.requestFocusInWindow(); } }; rightBtn.addActionListener(actionListener); leftBtn.addActionListener(actionListener); contentPane.add(jsp); contentPane.setPreferredSize(new Dimension(800,600)); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); jsp.setDividerLocation(0.5); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); } }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码