Java 如何将动作添加到另一个按钮内的新jbutton,以播放jfugue模式
我想问一下如何在java中添加动作jbutton,我是java的新手。 我正在用netbeans制作一个和声搜索算法优化和弦的程序。jButton3有一个处理算法的函数,但我需要将1个按钮命名为jButton1,仅用于播放已经优化的模式。但是我收到一个错误的信息 不兼容类型:无法将void转换为jButton1 我怎样才能修好它?多谢各位Java 如何将动作添加到另一个按钮内的新jbutton,以播放jfugue模式,java,jbutton,jfugue,Java,Jbutton,Jfugue,我想问一下如何在java中添加动作jbutton,我是java的新手。 我正在用netbeans制作一个和声搜索算法优化和弦的程序。jButton3有一个处理算法的函数,但我需要将1个按钮命名为jButton1,仅用于播放已经优化的模式。但是我收到一个错误的信息 不兼容类型:无法将void转换为jButton1 我怎样才能修好它?多谢各位 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
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
不返回值,这不是在Java中让按钮执行操作的方式
我想你要做的是当你按下按钮时播放一个模式。我相信你需要这个:
jButton1 = new JButton("Play pattern");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
playPattern();
}
});
然后,添加此方法:
public void playPattern() {
player.play(pattern);
}
(您也可以在
actionPerformed
中播放模式,但它需要将模式
标记为final
,这需要您有更多的Java经验才能完全理解)在我看来,方法play返回类型是无效的,因此不能将ergo分配给jButton1。我不确定我是否理解正确,但jButton1是一个按钮,对吗?在它的点击动作中,你想运行已经优化的模式吗?然后您首先需要了解如何从播放器优化模式,它看起来像“player.play(pattern)”只运行它,可能它保存在播放器的其他属性中?一旦你得到它,将它保存在一些私有属性中,你可以在你的jButton3ActionPerformed中使用它,但不要尝试将它分配给按钮。谢谢你的回答,先生,是的jbutton1是一个按钮,我想在点击jbutton1时播放该模式。已经优化的模式在bestMusicString变量上。我假设这段代码在类或类似的东西中,对吗?使模式成为类的属性,或者类似的东西,可以通过jButton1的操作来访问,并在其中编写代码“Player=new Player();Player.play(pattern);”。1)发布一个。2) 当您收到错误时,发布堆栈跟踪并指定所发布代码中的哪一行抛出它。