我有一个滚动 Pane ,我想在其中添加多个 jlabel。在 jTextField1 中,用户输入 no Between 1-10(这里的 no. 表示必须添加多少个 jlabels),相应的 jlabels 将被添加到滚动 Pane 中。
谁能告诉我该怎么做。
int x=jTextField1.getText;
JPanel mainpanel = new JPanel();
mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.X_AXIS));
this.add(mainpanel);
JPanel rightpanel = new JPanel();
rightpanel.setLayout(new FlowLayout());
for (int i = 0; i < x; i++)
{
rightpanel.add(new JLabel("Label " + i));
}
mainpanel.add(new JLabel("Left label"));
mainpanel.add(new JScrollPane(rightpanel));
此代码无效。虽然当我们在另一个 jFrame 中做同样的事情时它是有效的,即
JFrame frame = new JFrame("Labels");
JPanel mainpanel = new JPanel();
mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.X_AXIS));
frame.add(mainpanel);
JPanel rightpanel = new JPanel();
rightpanel.setLayout(new FlowLayout());
for (int i = 0; i < 100; i++)
{
rightpanel.add(new JLabel("Label " + i));
}
mainpanel.add(new JLabel("Left label"));
mainpanel.add(new JScrollPane(rightpanel));
frame.setSize(500, 100);
frame.setVisible(true);
但是,我想在同一个 jFrame 中完成。
最佳答案
- 不要将 JLabel 直接添加到 JScrollPane。
- 但是您可以将它们添加到由 JScrollPane 的 JViewport 持有的 JPanel(一定要通过 JScollPane tutorial)。 JPanel 通常会使用 GridLayout,您只需在 JPanel 上调用
add(...)
即可添加 JLabel,然后调用revalidate()
和添加所有组件后在 JPanel 上重绘()
- 但是话虽如此,听起来您最好还是使用 JScrollPane 持有的 JList 并将项目添加到您的 JList。请查看 JList tutorial有关如何使用它的详细信息。
要获得更详细的答案,您需要提出更详细的问题,包括代码,最好是 sscce .
关于java - 在 ScrollPane 中添加多个 jlabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19209204/