【问题标题】:Java Swing Jtable show only one row/lineJava Swing Jtable 只显示一行/行
【发布时间】:2017-06-11 20:51:12
【问题描述】:

大家好,我想寻求一些帮助,我不明白我的代码在打开表格后的错误在哪里,只显示一个玩家

    /**
 * Create the frame.
 */
public Player()
{
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 316, 475);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);
    // create table with data
    // headers for the table
    column = new String[]
    {
        "Id",
        "Name",
        "level",
        "Part Time"
    };      
    for (L2PcInstance pc : L2World.getInstance().getPlayers())
    {
        if (pc.isOnline() && ((pc.getClient() != null) && !pc.getClient().isDetached()))
        {
            // actual data for the table in a 2d array
            data = new Object[][]
            {
                {
                    pc.getId(),
                    pc.getName(),
                    pc.getLevel(),
                    false
                },
            };
        }
    }
    // create table with data
    JTable table = new JTable(data, column);
    contentPane.add(table, BorderLayout.NORTH);

}

}

感谢大家的宝贵时间 :) 抱歉英语不好

【问题讨论】:

标签: java swing for-loop jtable


【解决方案1】:

想想你的逻辑。

在 for 循环中,您不断创建“数据”数组的新实例。所以你创建的最后一个实例只包含最后一行的数据。

您的逻辑需要更改为:

DefaultTableModel model = new DefaultTableModel(column, 0);

for (every row)
{
    Object[] row = {....};

    model.addRow( row );
}

JTable table = new JTable( model );

现在,当您读取数据时,每一行数据都会添加到模型中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2019-05-09
    • 1970-01-01
    相关资源
    最近更新 更多