import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; public class SplitPaneDemo2 extends JFrame implements ListSelectionListener { private JLabel label; public SplitPaneDemo2() { super("SplitPaneDemo2"); //Create an instance of SplitPaneDemo SplitPaneDemo splitPaneDemo = new SplitPaneDemo(); JSplitPane top = splitPaneDemo.getSplitPane(); splitPaneDemo.getImageList().addListSelectionListener(this); //XXXX: Bug #4131528, borders on nested split panes accumulate. //Workaround: Set the border on any split pane within //another split pane to null. Components within nested split //panes need to have their own border for this to work well. top.setBorder(null); //Create a regular old label label = new JLabel("Click on an image name in the list.", JLabel.CENTER); //Create a split pane and put "top" (a split pane) //and JLabel instance in it. JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top, label); splitPane.setOneTouchExpandable(true); splitPane.setDividerLocation(180); //Provide minimum sizes for the two components in the split pane top.setMinimumSize(new Dimension(100, 50)); label.setMinimumSize(new Dimension(100, 30)); //Add the split pane to this frame getContentPane().add(splitPane); } public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; JList theList = (JList)e.getSource(); if (theList.isSelectionEmpty()) { label.setText("Nothing selected."); } else { int index = theList.getSelectedIndex(); label.setText("Selected image number " + index); } } public static void main(String s[]) { JFrame frame = new SplitPaneDemo2(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); frame.pack(); frame.setVisible(true); } }