簡體   English   中英

使用 JTable 和 JButton 搜索 ArrayList

[英]Searching ArrayList using JTable and JButton

我有一個保存足球比賽的 ArrayList,當用戶輸入日期並按下“搜索”按鈕時,會打開一個新的 JTable,顯示當天進行的所有比賽。 我已經循環獲取日期並將其與 JTextField 中的輸入進行比較,但它只會給我一個空表,即使在用戶輸入的日期有比賽記錄。 在下面的這段代碼中,我只是使用 JTextField 上的 Enter 鍵來執行搜索,因為我不知道如何將 JTextField 映射到 JButton。 我試過,但它只打印搜索 Jbutton 名稱。

 public void searchMatch(ArrayList<Matches> searchMatch, String e)
{
    DefaultTableModel searchModel = new DefaultTableModel();
    for(int i = 0; i < searchMatch.size(); i++)
    {
        if(searchMatch.get(i).getM_date().equals(e))
        {
            System.out.println(searchMatch.get(i).getM_date());
            String date = searchMatch.get(i).getM_date();
            String teamName = searchMatch.get(i).getM_teamName();
            String teamName2 = searchMatch.get(i).getM_teamName2();
            int goalsScoredTeam1 = searchMatch.get(i).getGoalsTeam1();
            int goalsScoredTeam2 = searchMatch.get(i).getGoalsTeam2();

            Object[] row = {teamName, teamName2, goalsScoredTeam1, goalsScoredTeam2,date};
            searchModel.addRow(row);

            JTable searchTable = new JTable(searchModel);
            searchTable.setFillsViewportHeight(true);
            JPanel searchPanel = new JPanel();
            JScrollPane scrollPane = new JScrollPane(searchTable);
            searchPanel.add(scrollPane);

            JFrame frame = new JFrame("Searched Matches");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            searchTable.setOpaque(true);
            frame.setContentPane(searchPanel);

            frame.pack();
            frame.setSize(500, 500);
            frame.setVisible(true);
        }
    }

}
DefaultTableModel searchModel = new DefaultTableModel();

您的 TableModel 沒有要顯示的列。

即使您添加了數據行,也無法顯示任何數據,除非您還為 TableModel 定義了“列名”。

你的代碼應該是這樣的:

String columnNames = { "Date", "Name", "..." };
DefaultTableModel searchModel = new DefaultTableModel(columnNames, 0);

這將創建一個只有列名的空 TableModel。 然后您的循環代碼將添加每一行數據。

請注意,您還應該考慮將所有數據存儲在 TableModel 中,然后只過濾 TableModel。 閱讀 Swing 教程中關於排序和過濾的部分,以獲取工作示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM