我有两个JList控件并排。它们之间的按钮很少。当我从eclipse运行时,布局看起来很好。
但是如果我运行导出的jar文件,左边会占用更多空间。我不知道为什么会这样做。
我把它们放在像这样的GridBagLayout中。
mLstMdlTestSuitesAvailable = new DefaultListModel<String>();
mLstTestSuitesAvailable = new JList<String>();
mLstTestSuitesAvailable.setModel(mLstMdlTestSuitesAvailable);
mLstTestSuitesAvailable.setMinimumSize(new Dimension(100, 100));
JScrollPane scrollPaneTestSuitesAvailable = new JScrollPane(mLstTestSuitesAvailable);
GridBagConstraints gbcLstTestSuitesAvailable = new GridBagConstraints();
gbcLstTestSuitesAvailable.fill = GridBagConstraints.BOTH;
gbcLstTestSuitesAvailable.weightx = 10;
gbcLstTestSuitesAvailable.gridwidth = 10;
gbcLstTestSuitesAvailable.weighty = 8;
gbcLstTestSuitesAvailable.gridheight = 8;
gbcLstTestSuitesAvailable.insets = new Insets(0, 11, 10, 11);
gbcLstTestSuitesAvailable.gridx = 0;
gbcLstTestSuitesAvailable.gridy = 1;
panel.add(scrollPaneTestSuitesAvailable, gbcLstTestSuitesAvailable);
mLstMdlTestSuitesSelected = new DefaultListModel<String>();
mLstTestSuitesSelected = new JList<String>();
mLstTestSuitesSelected.setModel(mLstMdlTestSuitesSelected);
GridBagConstraints gbcLstTestSuitesSelected = new GridBagConstraints();
gbcLstTestSuitesSelected.fill = GridBagConstraints.BOTH;
gbcLstTestSuitesSelected.weightx = 10;
gbcLstTestSuitesSelected.gridwidth = 10;
gbcLstTestSuitesSelected.weighty = 8;
gbcLstTestSuitesSelected.gridheight = 8;
gbcLstTestSuitesSelected.insets = new Insets(0, 11, 10, 11);
gbcLstTestSuitesSelected.gridx = 15;
gbcLstTestSuitesSelected.gridy = 1;
JScrollPane scrollPaneTestSuitesSelected = new JScrollPane(mLstTestSuitesSelected);
panel.add(scrollPaneTestSuitesSelected, gbcLstTestSuitesSelected);
有人可以帮我弄清楚这里出了什么问题吗?
答案 0 :(得分:1)
如JTable
here所示,您可以覆盖列表的getPreferredScrollableViewportSize()
方法以指定首选的首选大小。 Uisng getRowHeight()
的倍数提供了漂亮的外观。
答案 1 :(得分:1)
GridBagLayout
尊重所包含组件的首选大小。 JList
的首选大小由其内容决定。通过查看截图,很明显您的JList
具有不同的内容,具体取决于您所使用的环境,因此首选大小不同并不奇怪。
如果您想要更可预测的行为,请查看setPrototypeCellValue
。这允许您设置确定单元格大小的“典型值”。优于setFixedCellWidth
的优点是它仍然尊重字体,显示分辨率等。
答案 2 :(得分:0)
我弄明白了为什么。顶部的横幅图像不会导出,因此会在jar的布局中造成混乱。当我将图像添加到导出jar的文件夹时,它显示与从eclipse运行的文件完全相同。谢谢大家。