如何在绝对布局的JPanel中为JList添加JScrollPane?
给Null布局下的JList添加JScrollPane的方法
没问题!既然你不想更换布局管理器,完全可以直接给每个JList套上JScrollPane,然后用Null布局的方式手动设置滚动面板的位置和大小就行,步骤很简单:
步骤1:为每个JList创建JScrollPane实例
把你的JList直接传入JScrollPane的构造方法,这样JList会自动成为滚动面板的内部视图组件。比如:JScrollPane scrollPane1 = new JScrollPane(list); JScrollPane scrollPane2 = new JScrollPane(list2); JScrollPane scrollPane3 = new JScrollPane(list3);步骤2:手动设置滚动面板的位置和大小
用setBounds()方法给每个滚动面板设置位置和尺寸,参数就用你原来给对应JList设置的数值就行——滚动面板会包裹住内部的JList,当列表内容超出面板可视区域时,滚动条会自动出现。比如:// 假设你原来给list设置的位置是(50,50),大小200x300 scrollPane1.setBounds(50, 50, 200, 300); scrollPane2.setBounds(270, 50, 200, 300); scrollPane3.setBounds(490, 50, 200, 300);步骤3:将滚动面板添加到JPanel中
注意要把滚动面板添加到你的Null布局面板里,而不是原来的JList。如果之前已经把JList添加到面板了,记得先移除它,避免重复组件:// 如果之前加过JList,先移除 yourNullLayoutPanel.remove(list); yourNullLayoutPanel.remove(list2); yourNullLayoutPanel.remove(list3); // 添加滚动面板 yourNullLayoutPanel.add(scrollPane1); yourNullLayoutPanel.add(scrollPane2); yourNullLayoutPanel.add(scrollPane3);
小提示
- 不需要修改JList的任何设置,滚动面板会自动管理它的显示和滚动行为
- 如果调整滚动面板的大小,内部JList会自动适配可视区域,滚动条会根据内容长度自动显示/隐藏
内容的提问来源于stack exchange,提问作者user12473781
相关产品推荐
相关产品推荐

