如何将动作添加到另一个按钮内的新 jbutton 以播放 jfugue 模式
how to add action to new jbutton inside another button for playing jfugue pattern
我想问一下如何在java中添加动作jbutton,我是java的新手。
我正在制作一个程序来使用 netbeans 使用 Harmony Search 算法优化和弦。 jButton3 具有处理算法的功能,但我需要将 1 个按钮更名为 jButton1,仅用于播放已经优化的模式。但我收到一条消息错误
incompatible types: void cannot be converted to jButton1.
我该如何解决?谢谢。
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
hs = new HarmonySearch(oriChord, hms, hmcr, par, delta, max_iteration);
//hs = new HarmonySearch();
hs.train();
String melodyMusicString = hs.nodeListToMusicString(oriMelody);
String chordMusicString = hs.nodeListToMusicString(oriChord);
String bestMusicString = hs.nodeListToMusicString(hs.best_chord());
//System.out.println(chordMusicString);
Pattern pattern = new Pattern("T["+jComboBox1.getSelectedItem()+"]");
pattern.add("V0 " + melodyMusicString);
pattern.add("V1 " + bestMusicString);
Player player = new Player();
jButton1 = player.play(pattern);
}
这是你的问题:
jButton1 = player.play(pattern);
问题是 player.play
没有 return 值,这不是让按钮在 Java 中执行操作的方式。
我想你想做的是在你按下按钮时播放一个模式。我相信你需要这个:
jButton1 = new JButton("Play pattern");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
playPattern();
}
});
以后,添加这个方法:
public void playPattern() {
player.play(pattern);
}
(你也可以在actionPerformed
中播放花样,但需要将pattern
标记为final
,完全理解需要多一点Java您的经验)
我想问一下如何在java中添加动作jbutton,我是java的新手。 我正在制作一个程序来使用 netbeans 使用 Harmony Search 算法优化和弦。 jButton3 具有处理算法的功能,但我需要将 1 个按钮更名为 jButton1,仅用于播放已经优化的模式。但我收到一条消息错误
incompatible types: void cannot be converted to jButton1.
我该如何解决?谢谢。
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
hs = new HarmonySearch(oriChord, hms, hmcr, par, delta, max_iteration);
//hs = new HarmonySearch();
hs.train();
String melodyMusicString = hs.nodeListToMusicString(oriMelody);
String chordMusicString = hs.nodeListToMusicString(oriChord);
String bestMusicString = hs.nodeListToMusicString(hs.best_chord());
//System.out.println(chordMusicString);
Pattern pattern = new Pattern("T["+jComboBox1.getSelectedItem()+"]");
pattern.add("V0 " + melodyMusicString);
pattern.add("V1 " + bestMusicString);
Player player = new Player();
jButton1 = player.play(pattern);
}
这是你的问题:
jButton1 = player.play(pattern);
问题是 player.play
没有 return 值,这不是让按钮在 Java 中执行操作的方式。
我想你想做的是在你按下按钮时播放一个模式。我相信你需要这个:
jButton1 = new JButton("Play pattern");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
playPattern();
}
});
以后,添加这个方法:
public void playPattern() {
player.play(pattern);
}
(你也可以在actionPerformed
中播放花样,但需要将pattern
标记为final
,完全理解需要多一点Java您的经验)