从在一个函数中使用值环外的这(Using values from a for loop in a f

2019-10-18 01:51发布

我需要,我觉得从里面for循环的功能,是不是在循环中使用的值,我无法弄清楚如何做到这一点。 什么我希望做到的是从一个HashMap中来,然后在绘制关键提取值JTable (使用仅当行被选中 ListSelectionListener )。 这样一来,我能避免绘图百桌这将节省大量的时间。 另外我使用DefaultTableModel

这是我的for循环:

tableMaker(model);
for(Map.Entry<String,NumberHolder> entry : entries)
{   
  //add rows for each entry of the hashmap to the table             

  double[] v = new double[entry.getValue().singleValues.size()];
  int i = 0;
  for(Long j : entry.getValue().singleValues)
  {
    v[i++] = j.doubleValue();
  }                  
  //right here I need to take "v" 
  //and use it in my tableMaker function for that specific row
}                  

在我tableMaker功能,创建我JTable并添加ListSelectionListener ,在这里我希望当选择行创建直方图,并将其添加到我的lowerPanel。 这是一些代码。 我需要v ,这样我可以创建数据集。

public static void tableMaker(DefaultTableModel m)
{
   JPanel lowerPanel = new JPanel();

   //create table here

   frame.getContentPane().add(lowerPanel, BorderLayout.SOUTH);
   table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    table.getSelectionModel().addListSelectionListener(
            new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                if (!e.getValueIsAdjusting()) {
                    JFreeChart chart = ChartFactory.createHistogram(
                        plotTitle, xaxis, yaxis, dataset, orientation,
                        show, toolTips, urls);                      
                //  lowerPanel.add(chart);
                //  lowerPanel.revalidate();
                }
            }
        });
}

Answer 1:

我感觉到你正在试图实现概述的方法在这里 。 而不是试图创建一个新的图表每次创建一个单一图表ChartPanel并保留其参考XYPlot 。 在你的ListSelectionListener ,你就可以使用plot.setDataset()来更新图表。 在这个例子中, ChangeListener取从现有所需的数据集List<XYDataset> 在该例子中,按钮的ActionListener生成每次被调用时的数据集。



文章来源: Using values from a for loop in a function outside of it