Joh*_*ith 1 java swing jscrollpane jlist
码:
list1items = new DefaultListModel();
list1items.addElement("-");
list1 = new JList(list1items);
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
list1.setBounds(0,0, 100,100);
JScrollPane list1scr = new JScrollPane(list1);
list1scr.setPreferredSize(new Dimension(20, 20));
list1.setVisibleRowCount(8);
getContentPane().add (list1scr);
Run Code Online (Sandbox Code Playgroud)
并且没有滚动条出现.当项目太多,它们被隐藏时,我无法接触到它们.怎么解决这个?
getContentPane().add(list1scr);
Run Code Online (Sandbox Code Playgroud)
为了扩展 Michael Ardan 的答案,您将 JList 添加到面板而不是 JScrollPane 中。必须将 JScrollPane 添加到面板中,并且必须将 JList 添加到 ScrollPane 中才能使其正常工作。确实没有必要使用setBounds或setPreferredSize摆脱它们。当您调用该方法时,JList 会处理所有这些事情setVisibleRowCount。这是 ScrollPane 工作的示例。如果您仍然遇到问题,请将您自己的代码插入到此示例中,直到出现问题。然后告诉我们是什么破坏了它。如果没有,请接受迈克尔的回答。
import java.awt.*;
import javax.swing.*;
public class Temp extends JPanel{
public Temp(){
DefaultListModel list1items = new DefaultListModel();
list1items.addElement("-");
for(int i = 0; i < 200; i++)
list1items.addElement("Item " + i);
JList list1 = new JList(list1items);
list1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
JScrollPane list1scr = new JScrollPane(list1);
list1.setVisibleRowCount(8);
add (list1scr);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new Temp());
frame.pack();
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4588 次 |
| 最近记录: |