美文网首页
Swing的特殊容器JSplitPane布局分割

Swing的特殊容器JSplitPane布局分割

作者: 开心的小哈 | 来源:发表于2021-11-29 19:40 被阅读0次
    package test.object;
    
    import java.awt.Canvas;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.image.BufferedImage;
    
    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 TextMain {
    
        public static void main(String[] args) {
            new TextMain().init();
        }
    
        public void init() {
            Book[] book = {
                    new Book("JAVA自学宝典", new ImageIcon("D:\\Image\\1631942921354.gif"), "这是一本编程好书,国内关于java的好书\n看得懂,学得会"),
                    new Book("轻量级JAVAEE企业应用实战", new ImageIcon("D:\\Image\\1634200844888.jpg"), "SMM整合开发的经典图书,值得拥有"),
                    new Book("轻量级web企业应用实战", new ImageIcon("D:\\Image\\1631942921354.gif"),
                            "这是一本编程好书,国内关于java的好书\n看得懂,学得会"),
                    new Book("轻量级dddd企业应用实战", new ImageIcon("D:\\Image\\1635245599465.gif"), "SMM整合开发的经典图书,值得拥有") };
            JFrame jFrame = new JFrame();
            // 生命组件
            JList<Book> list = new JList<>(book);
    
            JLabel booCover = new JLabel();
    
            JTextArea jTextArea = new JTextArea();
    
            list.setPreferredSize(new Dimension(150, 400));
            booCover.setPreferredSize(new Dimension(220, 270));
            jTextArea.setPreferredSize(new Dimension(220, 130));
    
            list.addListSelectionListener(new ListSelectionListener() {
    
                @Override
                public void valueChanged(ListSelectionEvent e) {
                    // 获取当前选中的是那个项目
                    Book book = list.getSelectedValue();
                    // 把书记的图片用bookCover展示
                    booCover.setIcon(book.getIcon());
    
                    // 把书籍的描述用bookDesc展示
                    jTextArea.setText(book.getDesc());
    
                }
            });
    
            // 组装左视图
            JSplitPane jSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, booCover, new JScrollPane(jTextArea));
            // 支持一触即展特性
            jSplitPane.setOneTouchExpandable(true);
            // 组装整体
            JSplitPane jSplitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jSplitPane, list);
            // 支持连续布局(连续刷新布局)
            jSplitPane2.setContinuousLayout(true);
    
            jFrame.add(jSplitPane2);
            jFrame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
            jFrame.pack();
            jFrame.setVisible(true);
    
        }
    
        BufferedImage image;
    
        class MyImage extends Canvas {
    
            @Override
            public void paint(Graphics g) {
                g.drawImage(image, 0, 0, null);
            }
    
        }
    }
    
    
    image.png

    相关文章

      网友评论

          本文标题:Swing的特殊容器JSplitPane布局分割

          本文链接:https://www.haomeiwen.com/subject/ybsztrtx.html