JAVA SWING 实现同步换图效果

package zikao.swing;

import javax.swing.*;
import java.awt.*;

public class SplitPaneTest {
    /*
       使用步骤:
       1,使用相关构造方法,创造JSplitPane对象

       JSplitPane(int newOrientation ,Component newLeftComponent,Component newRightComponent)

       newOrientation:  指定JSplitPane容器的分割方向
       如果值为JSplitPane.VERTICAL_SPLIT 垂直分割
       如果为JSplitPane.HORIZONTAL_SPLIT 水平分割

       newLeftComponent:左侧或者上侧的组件
       newLeftComponent:右侧或者下侧的组件

       2,是否开启连续布局的支持(可选)

       setContinuousLayout(boolean):

       3,设置支持是否一触即展的支持(可选)

       setOneTouchExpandable(boolean)

       4,其它设置:
       setDividerLocation(double):  设置分割条的位置为JSplitPane的某个百分比

       setDividerLocation(int):  利用像素点来设置分割条的位置

       setDividerSize(int): 设置分隔条的粗细

       setLeft(Right/Top/Bottom)Component(Component) 设置指定位置的组件

    */
    JFrame jFrame = new JFrame("测试JSplitPane");
    Book[] books = {new Book("零基础学java", new ImageIcon("FuXi\\java.jpg"), "零基础入门神器")
            , new Book("C++ Primer Plus", new ImageIcon("FuXi\\C++.jpg"), "C++高端进阶书籍")
            , new Book("Android进阶之光", new ImageIcon("FuXi\\Android.jpg"), "Android进阶必备书籍")
    };
    JList<Book> bookJList = new JList<>(books);
    JLabel bookCover = new JLabel();
    JTextArea bookDesc = new JTextArea();


    public void init() {
        bookJList.setPreferredSize(new Dimension(150, 400));
        bookCover.setPreferredSize(new Dimension(220, 270));
        bookDesc.setPreferredSize(new Dimension(220, 130));
        bookJList.addListSelectionListener(e -> {
            //获取当前选中的是哪个条目
            Book book = bookJList.getSelectedValue();
            //把书籍的图片用bookCover展示
            bookCover.setIcon(book.getIcon());
            //把书籍的详细介绍放入bookDesc
            bookDesc.setText(book.getDesc());
        });
        //组装左边组件
        JSplitPane left = new JSplitPane(JSplitPane.VERTICAL_SPLIT, bookCover, new JScrollPane(bookDesc));
        left.setOneTouchExpandable(true);
        //组装整体组件
        JSplitPane hole = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, bookJList);
        //支持连续布局
        hole.setContinuousLayout(true);
        hole.setDividerSize(10);
        jFrame.add(hole);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.pack();
        jFrame.setVisible(true);
    }

    public static void main(String[] args) {
        new SplitPaneTest().init();
    }
}

效果可以看我等下发的B站连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值