Listselectionevent上的“清除”选项卡无法正常工作

//编辑:该磁贴应被称为Listselectionevent上的“更新”选项卡,无法正常工作

我遇到了一个似乎无法解决的问题,因此可以寻求帮助。我有一个程序,使用JFileChooser导入csv.file,然后将csv.file导入JList。单击列表中的项目时,统计信息选项卡将使用不同的文本值更新自身。导入新文件时,我可以在列表中单击它,并且该选项卡会正确更新。但是,只要列表中有多个项目,即使选择一个新项目,也会显示以前的项目统计信息。这是我的程序的外观:

https://i.gyazo.com/b7121a5ed46862482e18d5f0156cb010.png

在我的代码中,我有一个扩展JPanel的方法,该方法绘制出文本字段,并用一种​​名为updateStatistics()的数据更新文本字段。在ListSelectionEvent内部,将调用updateStatistics(),以便每次我按列表中的一个项目时都应使用数据更新文本字段,但是就像我前面提到的那样,它仅在导入文件时有效。我该如何解决这个问题,以便tetxfield每次我按列表中的项目时都会更新,而不仅仅是在新导入的项目上更新?

我绘制面板的方法:

private JPanel createViewStatisticsPanel() {
        JPanel statPanel = new JPanel(new GridLayout(2,3));
        statPanel.setPreferredSize(new Dimension(1000,500));

        // statPanel.setBorder(BorderFactory.createEmptyBorder(2,2,2));

        JPanel timePanel = new JPanel();
        timePanel.setBorder(BorderFactory.createTitledBorder("Tid/Distans"));
        timePanel.setBackground(new Color(224,255,255));
        tdp.setBackground(new Color(224,255));
        timePanel.add(tdp);
        statPanel.add(timePanel);

        JPanel startTimepanel = new JPanel();
        startTimepanel.setBorder(BorderFactory.createTitledBorder("Altitud"));
        startTimepanel.setBackground(new Color(224,255));
        stp.setBackground(new Color(224,255));
        startTimepanel.add(stp);
        statPanel.add(startTimepanel);

        JPanel startTimepanel1 = new JPanel();
        startTimepanel1.setBorder(BorderFactory.createTitledBorder("Hastighet"));
        startTimepanel1.setBackground(new Color(224,255));
        stp1.setBackground(new Color(224,255));
        startTimepanel1.add(stp1);
        statPanel.add(startTimepanel1);

        JPanel startTimepanel2 = new JPanel();
        startTimepanel2.setBorder(BorderFactory.createTitledBorder("Puls"));
        startTimepanel2.setBackground(new Color(224,255));
        stp2.setBackground(new Color(224,255));
        startTimepanel2.add(stp2);
        statPanel.add(startTimepanel2);

        JPanel startTimepanel3 = new JPanel();
        startTimepanel3.setBorder(BorderFactory.createTitledBorder("Kadens"));
        startTimepanel3.setBackground(new Color(224,255));
        stp3.setBackground(new Color(224,255));
        startTimepanel3.add(stp3);
        statPanel.add(startTimepanel3);

        JPanel startTimepanel4 = new JPanel();
        startTimepanel4.setBorder(BorderFactory.createTitledBorder("Lutning"));
        startTimepanel4.setBackground(new Color(224,255));
        stp4.setBackground(new Color(224,255));
        startTimepanel4.add(stp4);
        statPanel.add(startTimepanel4);

        return statPanel;
    }

我更新它的方法(将文本添加到文本字段):

public void updateStatistics(Statistics stats)

{
    stats.calculateStatistics();
    tdp.setText("\n Starttid: " + stats.getStartTime() + "\n Slutlig tid: " + stats.getEndTime() + "\n Total tid: "
            + stats.getTotalTime() + "\n Total distans" + stats.getTotalDistance());
    stp.setText("\n Lägsta altitud: " + stats.getMinAltitude() + "\n Högsta altitud : " + stats.getMaxAltitude()
            + "\n Genomsnittlig altitud: " + stats.getavgAltitude());
    stp1.setText("\n Lägsta hastighet: " + stats.getMinSpeed() + "\n Högsta hastighet : " + stats.getMaxSpeed()
            + "\n Genomsnittlig hastighet: " + stats.getavgSpeed());
    stp2.setText("\n Lägsta puls: " + stats.getMinHeartrate() + "\n Högsta puls : " + stats.getMaxHeartrate()
            + "\n Genomsnittlig puls: " + stats.getavgHeartrate());
    stp3.setText("\n Lägsta kadens: " + stats.getMinCandence() + "\n Högsta kadens : " + stats.getMaxCandence()
            + "\n Genomsnittlig kadens: " + stats.getavgCandence());
    stp4.setText("\n Lägsta lutning: " + stats.getMinTilt() + "\n Högsta lutning : " + stats.getMaxTilt()
            + "\n Genomsnittlig lutning: " + stats.getavgTilt());
}

我的ListSelectionEvent :(应用于列表的侦听器)

private void selectactivity(ListSelectionEvent e) // Lyssnarmetod

    {


        activity selectedactivity = listact.getSelectedValue();
        if (selectedactivity != null)

        {

            stats = new Statistics(activity.getData());
            updateStatistics(stats);
        }

    }
daiqilin1970 回答:Listselectionevent上的“清除”选项卡无法正常工作

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3158867.html

大家都在问