使用JSplitPane---摘自《JAVA疯狂讲义》

知识点:

1.JList的使用

2.JList的事件监听器

3.JSplitPane的使用

4.JScrollPane的使用


代码:

package codes.c12.part3;


import java.awt.Dimension;


import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;


public class SplitPaneTest {
   Book[] books = new Book[] {
         new Book("疯狂Java讲义", new ImageIcon("image/ico/java.png"),
               "国内关于Java编程最全面的图书\n看得懂,学得会"),
         new Book("轻量级Java EE企业应用实战", new ImageIcon("image/ico/ee.png"),
               "SSH整合开发的经典图书,值得拥有"),
         new Book("疯狂Android讲义", new ImageIcon("image/ico/android.png"),
               "全面介绍Android平台应用程序\n开发的各方面知识") };
   JFrame jf = new JFrame("测试JSplitPane");
   JList<Book> 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(300, 150));
      bookDesc.setPreferredSize(new Dimension(300, 150));
      /*
       * 为下拉列表添加事件监听器
       */
      bookList.addListSelectionListener(new ListSelectionListener() {


         @Override
         public void valueChanged(ListSelectionEvent e) {
            Book book = bookList.getSelectedValue();
            bookCover.setIcon(book.getIco());
            bookDesc.setText(book.getDesc());
         }
      });
      /*
       * 创建一个垂直的分割面板 将bookCover放在上面,将bookDesc放在下面,支持连续布局
       */
      JSplitPane left = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true,
            bookCover, new JScrollPane(bookDesc));
      /*
       * 打开“一触即展”特性
       */
      left.setOneTouchExpandable(true);
      /*
       * 下面代码设置分割条的大小
       */
      left.setDividerSize(8);
      /*
       * 设置该分割面板根据所包含组件的最佳大小来调整布局
       */
      left.resetToPreferredSizes();
      /*
       * 创建一个水平分割面板 将left组件放在左边,将boolList组件放在右边
       */
      JSplitPane content = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left,
            bookList);
      content.setOneTouchExpandable(true);
      jf.add(content);
      jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      jf.pack();
      jf.setVisible(true);
   }
   /**
    * @param args
    */
   public static void main(String[] args) {
      new SplitPaneTest().init();
   }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值