Java 将JScrollPane添加到我的JList
我在获取jlist上的垂直滚动条时遇到问题 listInfo是一个包含数据的向量。 右面板是位于框架东侧的面板 如果我只添加JList,它就会出现。如果添加滚动窗格,则不会发生任何事情Java 将JScrollPane添加到我的JList,java,swing,jlist,scrollpane,Java,Swing,Jlist,Scrollpane,我在获取jlist上的垂直滚动条时遇到问题 listInfo是一个包含数据的向量。 右面板是位于框架东侧的面板 如果我只添加JList,它就会出现。如果添加滚动窗格,则不会发生任何事情 data = new JList(listInfor); data.setVisible(true); data.setVisibleRowCount(5); data.setPreferredSize(new Dimension(400,400))
data = new JList(listInfor);
data.setVisible(true);
data.setVisibleRowCount(5);
data.setPreferredSize(new Dimension(400,400));
data.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(data);
rightPanel.add(scroll);
出于某种原因,这是行不通的 不要设置
JList
的首选大小,这会阻止它根据列表的内容计算列表的大小,这意味着它永远不会超过您提供的首选大小,也就是说它永远不会显示任何滚动条
相反,使用和的组合来调整JList
计算首选大小的方式
如果你真的想要更多的控制,你应该看看
JList
实现的界面,但即使如此,我还是要小心不要设置JList
的首选大小,这会阻止它根据列表的内容计算列表的大小,这意味着它永远不会超过您提供的首选大小,也就是说它永远不会显示任何滚动条
相反,使用和的组合来调整JList
计算首选大小的方式
如果你真的想要更多的控制,你应该看看
JList
实现的界面,但即使如此,我还是要小心不要设置JList
的首选大小,这会阻止它根据列表的内容计算列表的大小,这意味着它永远不会超过您提供的首选大小,也就是说它永远不会显示任何滚动条
相反,使用和的组合来调整JList
计算首选大小的方式
如果你真的想要更多的控制,你应该看看
JList
实现的界面,但即使如此,我还是要小心不要设置JList
的首选大小,这会阻止它根据列表的内容计算列表的大小,这意味着它永远不会超过您提供的首选大小,也就是说它永远不会显示任何滚动条
相反,使用和的组合来调整JList
计算首选大小的方式
如果您真的想要更多的控制,您应该看看JList
实现的接口,但即使如此,我还是会小心地测试它
public static void main(String[] args) {
String[] ar = {"one", "two", "three"};
JList data = new JList(ar);
data.setVisible(true);
data.setVisibleRowCount(5);
data.setPreferredSize(new Dimension(400,400));
data.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(data);
JFrame frame = new JFrame("StackOverflow Test");
frame.add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null); // to center
frame.setVisible(true);
}
一切都很好
对此进行了测试
public static void main(String[] args) {
String[] ar = {"one", "two", "three"};
JList data = new JList(ar);
data.setVisible(true);
data.setVisibleRowCount(5);
data.setPreferredSize(new Dimension(400,400));
data.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(data);
JFrame frame = new JFrame("StackOverflow Test");
frame.add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null); // to center
frame.setVisible(true);
}
一切都很好
对此进行了测试
public static void main(String[] args) {
String[] ar = {"one", "two", "three"};
JList data = new JList(ar);
data.setVisible(true);
data.setVisibleRowCount(5);
data.setPreferredSize(new Dimension(400,400));
data.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(data);
JFrame frame = new JFrame("StackOverflow Test");
frame.add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null); // to center
frame.setVisible(true);
}
一切都很好
对此进行了测试
public static void main(String[] args) {
String[] ar = {"one", "two", "three"};
JList data = new JList(ar);
data.setVisible(true);
data.setVisibleRowCount(5);
data.setPreferredSize(new Dimension(400,400));
data.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane(data);
JFrame frame = new JFrame("StackOverflow Test");
frame.add(scroll);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null); // to center
frame.setVisible(true);
}
一切都很好
如果
rightPanel
变量没有布局管理器,则应为其指定布局管理器。缺少布局管理器可能会给您带来意外的结果,因为您没有手动设置组件的边界
此外,正如所指出的,如果可能的话,您不应该在组件上设置首选尺寸。还有其他方法来确定吸引人的维度。例如,使用JList
,使用setVisibleRowCount
为了使滚动仅在需要时显示,您可以在JScrollPane
构造函数上指定滚动条策略,或者使用其set方法来指定滚动条策略。例如:
jlist.setVisibleRowCount(5);
JScrollPane scroll = new JScrollPane(jlist);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
另外,确保滚动窗格的容器符合其首选大小,就像滚动窗格符合列表的首选大小一样。如果
rightPanel
变量没有布局管理器,则应为其指定布局管理器。缺少布局管理器可能会给您带来意外的结果,因为您没有手动设置组件的边界
此外,正如所指出的,如果可能的话,您不应该在组件上设置首选尺寸。还有其他方法来确定吸引人的维度。例如,使用JList
,使用setVisibleRowCount
为了使滚动仅在需要时显示,您可以在JScrollPane
构造函数上指定滚动条策略,或者使用其set方法来指定滚动条策略。例如:
jlist.setVisibleRowCount(5);
JScrollPane scroll = new JScrollPane(jlist);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
另外,确保滚动窗格的容器符合其首选大小,就像滚动窗格符合列表的首选大小一样。如果
rightPanel
变量没有布局管理器,则应为其指定布局管理器。缺少布局管理器可能会给您带来意外的结果,因为您没有手动设置组件的边界
此外,正如所指出的,如果可能的话,您不应该在组件上设置首选尺寸。还有其他方法来确定吸引人的维度。例如,使用JList
,使用setVisibleRowCount
为了使滚动仅在需要时显示,您可以在JScrollPane
构造函数上指定滚动条策略,或者使用其set方法来指定滚动条策略。例如:
jlist.setVisibleRowCount(5);
JScrollPane scroll = new JScrollPane(jlist);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
另外,确保滚动窗格的容器符合其首选大小,就像滚动窗格符合列表的首选大小一样。如果
rightPanel
变量没有布局管理器,则应为其指定布局管理器。缺少布局管理器可能会给您带来意外的结果,因为您没有手动设置组件的边界
此外,正如所指出的,如果可能的话,您不应该在组件上设置首选尺寸。还有其他方法来确定吸引人的维度。例如,使用JList
,使用setVisibleRowCount
为了使滚动仅在需要时显示,您可以在JScrollPane
构造函数上指定滚动条策略,或者使用其set方法来指定滚动条策略。例如:
jlist.setVisibleRowCount(5);
JScrollPane scroll = new JScrollPane(jlist);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
另外,请确保滚动窗格的容器符合其首选大小,就像滚动窗格符合列表的首选大小一样。是否有例外?可以再加一些代码吗?还有,
listInfor
有多长时间?没有例外,我就是不能让我的JList出现。listInfo是一个从JTextField获取输入的向量。我加了一吨