JSplitPane separator usage
Import java. awt. *; import java. awt. event. *; import javax. swing. event. *; import java. util. export; import javax. swing. *; class Book {private String name; private Icon icon; private String desc; public Book (String name, Icon icon, String desc) {this. name = name; this. icon = icon; this. desc = desc;} public String getName () {return this. name;} public Icon getIcon () {return this. icon;} public String getDes C () {return this. desc;} public String toString () {return this. name ;}}; class Gui {Book [] books = new Book [] {new Book ("Book 1", new ImageIcon ("1.jpg")," Look at that dumb "), new Book ("Book 2", new ImageIcon ("2.jpg")," You and your ID card are the same "), new Book (" Book 3 ", new ImageIcon (" 3.jpg "), "You have the courage to live! ")}; JFrame frame = new JFrame (" "); JList bookList = new JList (books); JLabel bookCover = new JLabel (); JTextArea bookDesc = new JTextArea (); public void init () {bookList. setPreferredSize (new Dimension (150,300); bookCover. setPreferredSize (new Dimension (400,400); bookDesc. setPreferredSize (new Dimension (300,150); bookList. addListSelectionListener (new ListSelectionListener () {public void valueChanged (ListSelectionEvent event) {Book book = (Book) bookList. getSelectedValue (); bookCover. setIcon (book. getIcon (); bookDesc. setText (book. getDesc (); // bookDesc. setFontSize (50) ;}}); JSplitPane left = new JSplitPane (JSplitPane. VERTICAL_SPLIT, true, bookCover, bookDesc); left. setOneTouchExpandable (true); left. resetToPreferredSizes (); JSplitPane content = new JSplitPane (JSplitPane. HORIZONTAL_SPLIT, left, bookList); frame. add (content); frame. setdefaclocloseoperation (JFrame. EXIT_ON_CLOSE); frame. pack (); frame. setVisible (true) ;}}; class Tester {public static void main (String args []) {new Gui (). init ();}}