在我的代码中我有一个actionperformed,在其中我调用一个带有参数的方法,当我调用该方法时,问题是当第一次执行actionperformed时它采用正确的参数,然后当执行actionperformed时执行方法头中使用的第二次变量已更改,但该方法保留旧参数,我无法找到如何修复它。
这是方法代码:
protected int searchString(int j, String str, String[][] B) {
int exist = -1;
for (int i = 0; i < B[B.length - 1].length; i++) {
if (B[j][i].equals(str)) {
exist = i;
search = true;
System.out.println(B[j][i]);
}
}
System.out.println(search);
return exist;
}
这就是我所说的:
chooser.submitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
System.out.println(filePath);
A = fl.fileReader(filePath);
System.out.println(search);
if (chooser.neTypeCbBox.getSelectedItem().equals("BSC/RNC")) {
if (chooser.operationCbBox.getSelectedItem().equals(
"PS throughput usage (SW\\HW)")) {
if (chooser.bscTypeCbBox.getSelectedItem()
.equals("G U")) {
searchString(
4,
"Average Total Throughout of UL and DL PS Services for RNC (kbit/s)",
A);
} else if (chooser.bscTypeCbBox.getSelectedItem()
.equals("U O")) {
searchString(4,
"VS.PSLoad.MaxThruput.RNC (kbit/s)", A);
}
else if (chooser.operationCbBox.getSelectedItem().equals(
"DPU usage")) {
if (chooser.bscTypeCbBox.getSelectedItem()
.equals("G U")) {
searchString(4,
"AR9760:Average CPU Usage of the DPU (%)",
A);
} else if (chooser.bscTypeCbBox.getSelectedItem()
.equals("U O")) {
searchString(4, "VS.DPU.CPULOAD.MEAN (%)", A);
System.out.println(search);
}
if (search) {
chooser.setVisible(false);
welcome.rightPanel
.add(dpuUsage, BorderLayout.NORTH);
welcome.rightPanel.remove(chooser);
dpuUsage.setVisible(true);
search = false;
}
}
}
}
} catch (IOException e1) {
JOptionPane.showMessageDialog(null,
e1.getLocalizedMessage(), "Error",
JOptionPane.ERROR_MESSAGE);
e1.printStackTrace();
}
答案 0 :(得分:0)
该方法无法保持相同的参数。可能发生的是第一个条件总是被评估为true,这导致使用底层块中的参数调用方法。
答案 1 :(得分:0)
这是我在我的控制台中得到的:
D:\Downloads\UO DPU usage(03112015 1540)_20150311_154036.xls
D:\Downloads\UO DPU usage(03112015 1540)_20150311_154036.xls
reading..
D:\Downloads\UO DPU usage(03112015 1540)_20150311_154036.xls
false
VS.DPU.CPULOAD.MEAN (%)
true
true
D:\Downloads\UO CPU usage(03112015 1541)_20150311_154121.xls
D:\Downloads\UO CPU usage(03112015 1541)_20150311_154121.xls
reading..
D:\Downloads\UO CPU usage(03112015 1541)_20150311_154121.xls
false
VS.DPU.CPULOAD.MEAN (%)
true
true
文件路径发生变化,所以A也会这样做,但是当我调用searchString时,它会影响变量搜索的true,而字符串“VS.DPU.CPULOAD.MEAN(%)”不包含在第二个文件中。
答案 2 :(得分:0)
我猜你在第一场比赛后没有将变量search
重置为假?至少在您提供的代码段中就是这种情况。