2015-05-21 33 views
0

我有一個名爲MainGUIJFrame。在MainGUI裏面我已經通過了三個LinkedList ll1,ll2,ll3。我怎樣才能從我的JFrame輸出我的數據到JPanel

這些LinkedList是充滿了數據,我試圖只在屏幕上打印其中的一個到我的JPanel。我用來做一個for循環,並使用System.out.println在屏幕上打印出來。

所以現在我有MainGUI它主持三個按鈕。

New TasksIn Progress TasksCompleted Tasks

每個按鈕具有不同的鏈表LL1,LL2,LL3等
欲能夠點擊該按鈕並具有在我創建的JPanel下面列出的數據元素擱置下按鈕。

任何幫助深表謝意。

+0

您應該提供您正在使用的代碼的示例。看看[這個問題](http://stackoverflow.com/questions/284899/how-do-you-add-an-actionlistener-onto-a-jbutton-in-java)和[本教程]( http://www.javaprogrammingforums.com/java-swing-tutorials/278-how-add-actionlistener-jbutton-swing.html)。 – goncalotomas

+0

你的問題似乎不完整,不完整,因爲你的程序沒有代碼和有限的描述,以及你當前的代碼有什麼問題。到目前爲止,它似乎是將信息從一個對象傳遞到另一個對象的問題。那麼你卡在哪裏? –

+0

看看[如何使用列表](http://docs.oracle。COM/JavaSE的/教程/ uiswing /組件/ list.html) – MadProgrammer

回答

2

由於您沒有提供代碼,因此我認爲您無法理解LinkedList如何在具有GUI的程序中進行交互。

首先,使用按鈕時,你總是需要指導他們做一些他們通過添加一個ActionListener點擊後,在this answer解釋。
其次,如果您想將列表數據添加到JPanel,有幾種方法可以做到這一點。 A JList,或者如果您希望用戶能夠複製和粘貼數據(我發現它非常方便),則可以使用JTextArea,...請確保致電setEditable(false)以阻止用戶擺弄與你提供的數據。考慮JTextArea,這裏將是什麼樣子,如果ll1包含字符串:

添加的地方,我們的JPanel包含JTextArea

JTextArea txtArea = new JTextArea(); 
txtArea.setEditable(false); 
panel.add(txtArea); 

現在,我們命令按鈕做一些事情點擊時:

btn.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    txtArea.setText(null); //clear out old text 
    for(String str: ll1) { 
     txtArea.append(str+"\n"); 
    } 
    panel.revalidate(); //repaint JPanel 
    } 
}); 

這樣,您可以多次按任意按鈕。請注意,如果您在ll1顯示後添加更多內容,它本身不會進行視覺更新,您將需要再次點擊該按鈕或查看Listener。

2

您可以嘗試添加一個JTextArea或適合您想要顯示到您要顯示數據的JPanel的JComponent。使用其方法將鏈接列表中的數據寫入該JComponent。如果您使用的是JTextArea,則爲append()