我正在为服务器编写代码,当每个客户端连接时,通过动态地在服务器的GUI上添加JLabel
来显示其用户名,例如:
public class Server {
public void connect () {
//Handle client
frame.add(new JLabel(client.getUsername()));
}
}
现在我想将这些添加到具有三列的网格/表格中,每个JLabel
占用不同的单元格。当表填满时,表会变得可滚动,因为会自动添加更多行。
我不知道该怎么做。将GridLayout
和JScrollPane
添加到同一JFrame
会将JScrollPane
设置为一个单元格,而不是整个表格。
这样做的好方法是什么?
答案 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,而不是网格。