我是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
添加到 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);
然后您可以使用 JPanel
的 setPreferredSize
方法来调整其大小。
还要考虑使用一个好的布局管理器。我使用两者的组合(主要):
- Netbeans 的拖放式所见即所得编辑器 (Matisse)
- MigLayout -- 轻松获得最佳手写布局。需要一些学习曲线(但比其他学习更少)。
关于java - 如何在 jframe java swing 中调整 jscrollpane 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51022701/