我正在创建这个应用程序,它有各种组件(振荡器,效果)来绘制视觉波形。您可以使用GUI上的控件来更改组件参数。
当您与其中一个控件交互时,我需要更新关联的组件,然后重绘输出。
public JPanel createOscPanel(Osc o)
{
JPanel cbPanel = new JPanel();
final String[] comboItems = {"Sine", "Custom", "FSaw", "FSquare"};
JComboBox cb = new JComboBox(comboItems);
cbPanel.add(cb);
cb.addActionListener(this);
return cbPanel;
}
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
int value = cb.getSelectedIndex();
System.out.println(value);
}
在这个例子中 - 我如何传入该振荡器,以便我可以在其上运行setWaveType()
方法?
答案 0 :(得分:2)
创建匿名处理程序并更改createOscPanel
的参数。
public JPanel createOscPanel(final Osc o)
{
JPanel cbPanel = new JPanel();
final String[] comboItems = {"Sine", "Custom", "FSaw", "FSquare"};
JComboBox cb = new JComboBox(comboItems);
cbPanel.add(cb);
cb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
int value = cb.getSelectedIndex();
o.setWaveType();
System.out.println(value);
}
});
return cbPanel;
}
答案 1 :(得分:0)
将其保存为实例/成员变量,您可以从该类中的任何方法访问它。