Swing - 可滚动网格

时间:2017-01-28 12:15:32

标签: java swing

我正在为服务器编写代码,当每个客户端连接时,通过动态地在服务器的GUI上添加JLabel来显示其用户名,例如:

public class Server {

    public void connect () {
        //Handle client
        frame.add(new JLabel(client.getUsername()));
    }

}

现在我想将这些添加到具有三列的网格/表格中,每个JLabel占用不同的单元格。当表填满时,表会变得可滚动,因为会自动添加更多行。

我不知道该怎么做。将GridLayoutJScrollPane添加到同一JFrame会将JScrollPane设置为一个单元格,而不是整个表格。

这样做的好方法是什么?

1 个答案:

答案 0 :(得分:1)

网格必须在滚动窗格内 。这可以通过使用构造函数

来实现
JScrollPane(Component view)

JScrollPane(Component view, int vsbPolicy, int hsbPolicy)

您还可以调整滚动窗格,以便在不需要时隐藏滚动条:

JScrollPane scroll = new JScrollPane(myGrid,
        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

之后,您必须将滚动窗格添加到iframe,而不是网格。