我有一个用于两个不同操作的方法。通过用户按下哪个按钮来识别动作。
我使用布尔值来识别按下按钮。
PDFButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
buildArray(true);
}
});
PlotButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
buildArray(false);
}
});
public void buildArray(boolean buttonId) {
get indexs etc...
if(true) {
PDF.getInstance.buildArray(index);
}
else {
Plot.getInstance.buildArray(index);
}
}
这似乎是最好的方法吗?
粘贴按钮片段中的编辑错字。有2个按钮而不是一个。 我想要做的是在IF逻辑中设置一个条件,所以我知道按下了哪个按钮来激活buildArray方法。
public void buildArray() {
get indexs, mode code.....
if**(button press equals PDFButton)** {
PDF.getInstance.buildArray(index);
}
else {
Plot.getInstance.buildArray(index);
}
}
我知道一种方法是创建一个类似于buildArray的独立方法。然后每个按钮都会执行自己的方法。
PDFButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
PDFbuildArray(true);
}
});
PlotButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
PlotbuildArray(false);
}
});
但我希望尽可能地整合代码。
答案 0 :(得分:0)
我最终使用了Action Event getSource()。getText()。所以这个方法看起来像这样。
ublic void getSelectedTableData(SelectionEvent e) {
int[] row = viewer.getTable().getSelectionIndices();
Arrays.sort(row);
if (row.length > 0) {
for(int i = row.length-1; i >= 0; i--){
if(((Button) e.getSource()).getText() == "Plotting")
AplotPlotDataModel.getInstance().buildPlotArray(row[i]);
else {
AplotPDFDataModel.getInstance().buildArray(row[i]);
}
}
}
}
答案 1 :(得分:-1)
您是否阅读过Swing Tutorial?它有关于如何执行此操作的示例,通常使用setActionCommand()和getActionCommand()IIRC。
此外,您的代码中至少有两个错误。