for 루프 내부에서 찾을 수있는 값을 루프 내부에없는 함수에서 사용해야합니다. 이 작업을 수행. 달성하고자하는 것은 해시 맵의 키에서 값을 추출한 다음 JTable
에 그 행이 선택되어있는 경우에만 (ListSelectionListener
사용)의 값으로 그려야합니다. 이 방법을 사용하면 많은 시간을 절약 할 수있는 100 개의 테이블을 그래프로 표시하지 않아도됩니다. 또한 DefaultTableModel
을 사용하고 있습니다.외부의 함수에서 for 루프의 값 사용
이 내 루프입니다 : 내 tableMaker
기능에
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
}
, 내 JTable
를 작성하고 내가 행을 선택하면 히스토그램을 만들어 내 lowerPanel에 추가 희망 ListSelectionListener
을 추가합니다. 이것은 일부 코드입니다. 내가 데이터 세트를 만들 수 있도록 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();
}
}
});
}
나는이 문제를 이해하지 못한다. 'tableMaker (DefaultTableModel);'메소드를 사용하여'double [] v'를 필요로한다면,'double []'인수를 받아들이도록 메소드를 변경하십시오 : tableMaker (DefaultTableModel m, double [] v)' –
I 특정 항목에 대해'v'를 취하여'tableMaker'에 넣어야합니다. – user2007843
그러나'tableMaker'가 받아들이는 인수에 대해 제어 할 수 있습니다. 해당 메소드의 인수를 변경하여 double []을 수락하고'v'를 전달하십시오. – Mike