2012-05-01 109 views
-1

如何將StringTokenizer對象的結果顯示爲JLabel s?我有幾個記號我這個記號化後:test1$test2$test3$如何在java中顯示字符串標記器結果Jlabels

StringTokenizer tokenizer = new StringTokenizer(str, "$"); 

while(tokenizer.hasMoreTokens()){ 
    System.out.println(tokenizer.nextToken()); 
} 

,導致

test1 
test2 
test3 

我希望每個令牌在不同JLabel滾動屏上。這裏tokenize後的結果數是3,但它可以改變,所以它可以是5,20或25.如何動態地做到這一點?謝謝

+0

@ user1329572我也沒有什麼,我是新手,在java中我還在學習,但到目前爲止,我認爲那些標記添加到一些數組再算上那些數組元素(添加標記)和然後創建這麼多JLabels多少數組的大小,並把那些元素從數組到Jlabels,但我不知道如何做到這一點,一些代碼會很好 – takeit

+0

這個網站不是代碼生成器。以下是一些[示例](http://docs.oracle.com/javase/tutorial/uiswing/components/label.html)。 – user1329572

回答

1
ArrayList<JLabel> labels = new ArrayList<JLabel>(); 
StringTokenizer tokenizer = new StringTokenizer(str, "$"); 

while(tokenizer.hasMoreTokens()){ 
labels.add(new JLabel(tokenizer.nextToken())); 
} 

JPanel p = new JPanel(); 
for(int =0; i<labels.size(); i++) 
{ 
p.add(labels.get(i)); 
} 
... 

請參閱這裏Beginner guide to Java Swing

+0

謝謝,只是多一個問題,因爲我已經實現了它,並在arrayList中添加了這3個元素,當我打印labels.size()但它不會在面板上顯示它們。我如何setBounds爲這些標籤顯示1下另一個等等。像labels.add(新的JLabel(tokenizer.nextToken()))。setBounds(30,50 + 10 * i,210,14);? – takeit

+0

使用JPanel BorderLayout說GridLayout來控制你想要的JPanel上的位置標籤爲默認爲FlowLayout,它將在面板上連續添加標籤。 – Bitmap

+0

非常感謝您對我的幫助:) – takeit

2

將令牌放入ArrayList,並代之以爲用戶提供JList。有關更多詳細信息,請參閱How to Use Lists。例如。

JList demo.