几次点击后JButton停止工作,没有其他任何改变

时间:2013-04-16 23:29:28

标签: java swing awt actionlistener jfugue

我正在尝试创建一个钢琴程序,您单击该键并使用actionlistener播放来自jfugue库的注释。由于某些原因,在大约18次点击后没有改变任何东西,按钮停止工作我减少了代码来分析为什么会发生这种情况,因此只有两个注释。

提前感谢任何建议!

import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JComponent;
import java.awt.Color;
import javax.swing.JLayeredPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.*;
import org.jfugue.*; 

public class ChordPlayer2 extends JComponent{

public ChordPlayer2(){
    final Player player = new Player();

    JFrame frame = new JFrame();
    JButton  cButton, csharpButton;

    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(null);
    buttonPanel.setLocation(0, 0);
    buttonPanel.setSize(1700, 1000);

    csharpButton = new JButton("");
    csharpButton.setLocation(100, 150);
    csharpButton.setSize(100,520);
    buttonPanel.add(csharpButton);

    cButton = new JButton("");
    cButton.setLocation(0, 150);
    cButton.setSize(160, 800);
    buttonPanel.add(cButton);



    class cClicker implements ActionListener {

        public void actionPerformed(ActionEvent event) {
            player.play("C");

            }
    }

    class csClicker implements ActionListener {  
    public void actionPerformed(ActionEvent event) {
            player.play("C#");
    }
    }


    ActionListener c = new cClicker();
    cButton.addActionListener(c);

    ActionListener cs = new csClicker();
    csharpButton.addActionListener(cs);


    buttonPanel.setOpaque(true);
    //return buttonPanel; 

    frame.add(buttonPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1700, 1000);
    frame.setVisible(true);

}



public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    //JFrame.setDefaultLookAndFeelDecorated(true);
    ChordPlayer2 demo = new ChordPlayer2();

    } 
}

1 个答案:

答案 0 :(得分:1)