微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 JPanel 中使用 JScrollPane空布局

如何解决如何在 JPanel 中使用 JScrollPane空布局

我有一个 JButton,它生成一个 JPanel,其中包含一组 JLabel 组件。如您所见,标签数量对于 600x600 帧来说可能有点太多了。我尝试添加 JScrollPane,但由于某种原因没有任何效果。将布局管理器更改为 null 以外的其他内容添加滚动窗格完全破坏了面板和框架只是显示为完全空白。

createTable.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        try {
            ReadFile file = new ReadFile(path);
            String[] aryLines = file.OpenFile();

            JFrame frame2 = new JFrame("Table");
            JPanel panel = new JPanel();

           // JScrollPane scrollPane = new JScrollPane(panel);

            frame2.setSize(600,300);
            panel.setBounds(0,600,600);

            panel.setLayout(null);
            //scrollPane.setPreferredSize(new Dimension(600,300));

            for (counter = aryLines.length; counter > 0; counter-=6) {
                JLabel jLabel1 = new JLabel("Имя: "+ aryLines[counter-6]);
                JLabel jLabel2 = new JLabel("Деталь: " +aryLines[counter-5]);
                JLabel jLabel3 = new JLabel("Дата прибытия заказа: " + aryLines[counter-3]);
                JLabel jLabel4 = new JLabel("Дата заказа детали: " + aryLines[counter-4]);

                JCheckBox jCheckBox = new JCheckBox();
                JTextArea area = new JTextArea(Integer.toString(counter));

                jLabel1.setBounds(15,5 + (counter - 6)*30,300,20);
                jLabel2.setBounds(15,35 + (counter - 6)*30,20);
                jLabel3.setBounds(15,70 + (counter - 6)*30,20);
                jLabel4.setBounds(15,100 + (counter - 6)*30,20);

                //jLabel.setBackground(Color.BLACK);
                panel.add(jLabel1); panel.add(jLabel2); panel.add(jLabel3); panel.add(jLabel4);

                //panel.add(jCheckBox);
            }
           // scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            //scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
           // frame2.getContentPane().add(scrollPane);
            frame2.add(panel);
            //panel.add(scrollPane);
            frame2.setLayout(null);
            frame2.setVisible(true);
        } catch (IOException et){System.out.println("Error in CreateTable doc parser");}
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。