本文介紹了在ScrollPane中添加多個(gè)jbel的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有一個(gè)滾動(dòng)窗格,我想在其中添加多個(gè)jLabel。在jTextField1中,用戶輸入1-10之間的編號(hào)(此處為編號(hào)告知必須添加多少個(gè)jLabels),并相應(yīng)地在滾動(dòng)窗格中添加jLabels。
有人能告訴我怎么做嗎?
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));
此代碼不起作用。盡管當(dāng)我們在另一個(gè)jFrame中執(zhí)行相同的操作時(shí)它仍在工作,即
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中執(zhí)行此操作。
推薦答案
您不能將JLabels直接添加到JScrollPane。
但您可以將它們添加到JScrollPane的JViewport持有的JPanel中(請確保通過JScollPane tutorial)。通常,JPanel將使用GridLayout,您只需在JPanel上調(diào)用add(...)
,然后在添加所有組件后在JPanel上調(diào)用revalidate()
和repaint()
來添加JLabels
話雖如此,但聽起來使用JScrollPane持有的JLIST并將項(xiàng)添加到JLIST似乎要好得多。有關(guān)使用方法的詳細(xì)信息,請查看JList tutorial。
要獲得更詳細(xì)的答案,您需要提出包括代碼在內(nèi)的更詳細(xì)的問題,最好是sscce。
這篇關(guān)于在ScrollPane中添加多個(gè)jbel的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,