2011-05-20 49 views
2

我是編程新手。我正在寫簡單的Swing應用程序。我不能uderstand爲什麼不顯示的列名下面是我的代碼:?JTable的問題以及關於授權和認證的問題

public class HistoryFrame extends JFrame{ 
public JTable tbProducts=new JTable(); 
public JButton makePayButton; 
public JPanel panel; 
    public PaymentServiceInterface paymentService=new PaymentService(); 
public HistoryFrame(){ 
    setTitle("History of Payments"); 
    setSize(500,500); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    panel=new JPanel(); 
    this.add(panel); 
    DisplayData(paymentService.getData()); 
    ActionListener makePayAction=new PayAction(); 
    addRegUserButton("Make Payment",makePayAction); 
    setVisible(true); 
} 
public JButton addRegUserButton(String label, ActionListener listener){ 
    makePayButton=new JButton(label); 
    makePayButton.addActionListener(listener); 
    panel.add(makePayButton); 
    return makePayButton; 
} 
private void DisplayData(List<Payment> objectList) { 

    DefaultTableModel aModel = new DefaultTableModel() { 
    //setting the jtable read only 

    @Override 
    public boolean isCellEditable(int row, int column) { 
    return false; 
    } 
    }; 
    //setting the column name 
    Object[] tableColumnNames = new Object[3]; 
    tableColumnNames[0]="User"; 
    tableColumnNames[1] ="Payment"; 
    tableColumnNames[2]="Date"; 

    aModel.setColumnIdentifiers(tableColumnNames); 
    if (objectList == null) { 
    this.tbProducts.setModel(aModel); 
    return; 
    } 
    Object[] objects = new Object[3]; 
    ListIterator<Payment> lstrg = objectList.listIterator(); 
    //populating the tablemodel 
    while (lstrg.hasNext()) { 
    Payment p = lstrg.next();           
    objects[0]=p.getUser().getName(); 
    objects[1]=p.getPayment(); 
    objects[2]=p.getDate(); 
    aModel.addRow(objects); 
    } 
    //binding the jtable to the model 
    this.tbProducts.setModel(aModel); 
    panel.add(tbProducts); 
} 

,並請幫助我,我想知道我怎麼能提供用戶授權和認證的Swing應用程序一樣的東西在Web應用程序?當有會議,我把它,例如,用戶名和我能夠得到它在任何地方。在這個應用程序之一的任務提供註冊用戶付款,但我怎麼能登錄後得到他的名字?我真的需要你的幫助。謝謝。

回答

3

將您的JTable放入JScrollPane是獲得列標題體面顯示的最簡單方法。如果您還沒有這樣做,那麼您將需要閱讀Oracle Swing教程JTable部分:How to Use Tables

另外,它似乎你已經問過用戶授權等,並收到一個接受的答案在這裏:User's authorization in Java Swing application