【发布时间】:2016-11-02 22:17:25
【问题描述】:
我正在尝试制作一些 JCheckBoxes 列表并将其放在滚动窗格中。
我尝试制作复选框数组并将其放入 JList 中,然后放入 JScrollPane 中,但它仅从方法中打印有关复选框的一些信息。
我想实现这样的目标:
这是我目前的代码:
public class MainFrame extends JFrame
{
private JPanel panel = new JPanel();
private JScrollPane scroll;
public MainFrame()
{
add();
setTitle("Dropable checkbox");
setSize(500, 500);
add(panel);
setVisible(true);
}
private void add()
{
String categories[] = { "Household", "Office", "Extended Family",
"Company (US)", "Company (World)", "Team", "Will",
"Birthday Card List", "High School", "Country", "Continent",
"Planet","KITA" };
JPanel p = new JPanel();
BoxLayout layout = new BoxLayout(p, BoxLayout.Y_AXIS);
p.setLayout(layout);
for (String string : categories) {
p.add(new JCheckBox(string));
}
JScrollPane scroll = new JScrollPane(p);
panel.add(scroll);
}
}
这就是我的屏幕现在的样子
【问题讨论】:
-
可以创建一个 Y_LAYOUT 框并将复选框添加到其中。见docs.oracle.com/javase/8/docs/api/javax/swing/Box.html 和docs.oracle.com/javase/8/docs/api/javax/swing/BoxLayout.html
-
将复选框放在面板中。将面板放在滚动窗格中。
-
我用 Y_layout 制作了一个面板,将所有复选框放入其中,然后将该面板放入 ScrollPane。当我将该滚动窗格放入面板,然后将面板放入框架时,它不显示滚动条。但是当我将滚动窗格直接放在框架上时,它会显示滚动条。如何在面板中获取滚动条?
-
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);可能有助于显示滚动条
-
为什么不使用单列
JTable和合适的渲染器和编辑器?
标签: java swing jscrollpane jcheckbox