java - 如何在 jframe java swing 中调整 jscrollpane 的大小?
问题描述
我是 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);
我想要这样的输出,这样它就可以覆盖 jframe 中的小区域
请告诉我如何调整它的大小?因为我很长时间以来都陷入了这个问题。
解决方案
添加JScrollPane
到 aJPanel
然后添加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);
然后你可以使用 的setPreferredSize
方法JPanel
来调整它的大小。
还可以考虑使用一个好的布局管理器。我使用两个(主要)的组合:
- Netbeans 的拖放式所见即所得编辑器 (Matisse)
- MigLayout - 轻松获得最好的手写布局。需要一些学习曲线(但学习比其他人少)。
推荐阅读
- c++ - AreaSeries 仅显示悬停
- yammer - 获取基于日期过滤器的对话/线程列表?
- azure - 带有 mikrotik 的 Azure 站点到站点:缺少有效负载:ID_R
- ml - 运算符和操作数不同意这个简单函数中的错误
- django - Django 看不到任何已安装的应用程序
- swift - xcode 永远继续加载项目
- puppet - 使用 puppet 从特定仓库安装软件包
- intellij-idea - 为什么 pycharm 尝试自动执行 ssh-add?
- jsf - ChartUtilities.getImageMap() 未在 JSF 中生成工具提示
- php - 自然语言实体提取