2011-03-23 24 views
0

留言給Riaan,GUI正常工作的問題

我收到了同樣的結果。

這裏就是我加了數組列表頂部:

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.util.*; 
import java.io.*; 
import java.util.List; 

public class FVolume extends JFrame implements ActionListener{ 
    private JTabbedPane jtabbedPane; 
    private JPanel Customers; 
    private List<Customer> customers = new ArrayList<Customer>(); 
    JTextArea NameTextCustomers, ExistTextCustomers, NameTextContractors, ExistTextContractors; 

現在,這裏是我改的ActionListener

AddCustomers.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     Customers.add(new Customer("Customer")); 
    } 
     }); 

回答

0

最簡單的選擇很可能是添加列表字段:

public class FVolume extends JFrame implements ActionListener{ 
private JTabbedPane jtabbedPane; 
private JPanel Customers; 
private List<Customer> customers = new ArrayList<Customer>(); 
... 

然後將您的actionListener更改爲:

AddCustomers.addActionListener(new ActionListener() 
    { 
    public void actionPerformed(ActionEvent e) 
    { 
    customers.add(new Customer("Customer")); 
} 
    }); 

使用此列表,您現在可以簡單地清除文本區域,並在刷新按鈕被按下時從該列表中顯示客戶。

更好的方法是使用JDialog作爲客戶彈出窗口(並且不要從客戶構造函數中彈出),然後在對話框中註冊一個偵聽器,以便在新客戶保存時通知主應用程序。然後,只需將新客戶添加到文本區域(然後不需要刷新按鈕)。不過,這還有點牽扯,因爲您需要在保存時從客戶對話框中觸發PropertyChangeEvent(您需要進行其他更改)。

+0

感謝您的幫助,我添加了您所說的我認爲應該去的地方,並且它也做了同樣的事情。我改變了上面的代碼來顯示這些區域。 – Mike 2011-03-24 11:49:36

+0

您還需要將代碼添加到刷新按鈕,實際上是從列表內容中填充文本區域。 – 2011-04-05 20:23:20

相關問題