java - 如何在 jframe java swing 中调整 jscrollpane 的大小?

标签 java swing jframe jscrollpane layout-manager

我是java swing的新手,目前我正在使用java swing开发一个应用程序,我面临的问题是,当我用JScrollPane填充我的JList时,它显示在我的整个jframe上。 代码:

List<Element> parentElements = xmlUtil.getParentElements();
        String title = "License";
        JFrame f = new JFrame(title);



        String[] parentTags = new String[parentElements.size()];
        for(int i=0;i<parentElements.size();i++)
        {
            System.out.println(parentElements.get(i).getName());
            parentTags[i] = parentElements.get(i).getName();
        }

        JList list = new JList(parentTags);
        JScrollPane scrollPane = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setPreferredSize(new Dimension(50,40)); 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container contentPane = f.getContentPane();

        contentPane.add(scrollPane);

        f.setSize(900, 700);
        f.setVisible(true);

输出:jscrollpaneoutput

我想要这样的输出,这样它就可以覆盖 jframe 中的小区域 enter image description here

请告诉我如何调整它的大小?因为我很长时间都陷入这个问题。

最佳答案

JScrollPane 添加到 JPanel,然后将 JPanel 添加到 JFrame:

    JScrollPane scrollPane = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container contentPane = f.getContentPane();

    JPanel panel = new JPanel();
    panel.add(scrollPane);
    panel.setPreferredSize(new Dimension(50,40));
    contentPane.add(panel);

然后您可以使用 JPanelsetPreferredSize 方法来调整其大小。

还要考虑使用一个好的布局管理器。我使用两者的组合(主要):

  1. Netbeans 的拖放式所见即所得编辑器 (Matisse)
  2. MigLayout -- 轻松获得最佳手写布局。需要一些学习曲线(但比其他学习更少)。

关于java - 如何在 jframe java swing 中调整 jscrollpane 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51022701/

相关文章:

java - 在 Java 中,导入类可以与导入类具有相同的简单名称吗?有什么限制吗?

java - 如果按下键盘,JOptionPane 会中断扫描仪输入

java - 如何在 Hibernate 中限制集合的内容

java - 如何在 Tomcat servlet 中记录字符解码错误

java - Gif 未显示在 JFrame 中

java - 如何在不使用新 JFrame 的情况下更改 JPanel 中的图像(Repaint() 不起作用!)

java - JFrame 根本不显示

java - 在桌面应用程序中调整 JFrame 的大小 - NetBeans

Java Gui 线程编码?

java - 我的表程序有问题。有人能告诉我如何解决吗?