2011-05-20 50 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