학교용으로 설계된 사운드 보드 프로그램이 있습니다. 나는 실제로 내가 원하는 모든 프로그램을 쓸 수있다. 다음과 같이 코드를 작성했습니다.개별 버튼에 기능 설정
package soundboard;
import javax.swing.*;
import java.awt.event.*;
public class Soundboard implements ActionListener{
JButton loadButton;
JButton clearButton;
JButton Button1;
JButton Button2;
JButton Button3;
JButton Button4;
JPanel mainsPanel;
int load;
public void windowCreate() {
JFrame frame = new JFrame();
mainsPanel = new JPanel();
loadButton = new JButton("Load...");
loadButton.setSize(80, 30);
loadButton.setLocation(4, 4);
loadButton.addActionListener(this);
clearButton = new JButton("Clear");
clearButton.setSize(80, 30);
clearButton.setLocation(92, 4);
clearButton.addActionListener(this);
Button1 = new JButton("1");
Button1.setSize(80, 80);
Button1.setLocation(4, 45);
Button1.addActionListener(this);
Button2 = new JButton("2");
Button2.setSize(80, 80);
Button2.setLocation(92, 45);
Button2.addActionListener(this);
Button3 = new JButton("3");
Button3.setSize(80, 80);
Button3.setLocation(4, 133);
Button3.addActionListener(this);
Button4 = new JButton("4");
Button4.setSize(80, 80);
Button4.setLocation(92, 133);
Button4.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(loadButton);
frame.add(clearButton);
frame.add(Button1);
frame.add(Button2);
frame.add(Button3);
frame.add(Button4);
frame.add(mainsPanel);
frame.setSize(183,245);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
@Override
public void actionPerformed(ActionEvent event){
load += 1;
System.out.println(load);
}
public static void main(String[] args){
Soundboard window = new Soundboard();
window.windowCreate();
}
}
이 예제에서 모든 단일 버튼은 똑같은 기능을합니다. 어떻게,이 기본 코드를 사용하여, 나는 단추가 그들 자신의 개별적인 일을하도록 설정 했는가? 나는 그것을 설계하여 "로드"버튼을 누른 다음 숫자 버튼이 그 버튼에 소리를로드하도록 계획합니다. 로드를 치지 않고 숫자 버튼을 누르면 먼저 지정된 사운드가 재생됩니다. "clear"를 누르면 모든 버튼이 언로드됩니다. 대신
ButtonX.addActionListener(this);
기록
ButtonX.addActionListener(e -> {
//do stuff here
});
->
의
자신의 [익명의 ActionListener를] 쓰기 (http://stackoverflow.com/questions/284899/how-do-you-add-an-actionlistener- 아래입니다 to-a-jbutton-in-java)를 구현할 필요가 없습니다. Soundboard는 ActionListener가 아니어야합니다. 대신 JPanel이 될 수 있습니다. – Compass
변수 이름은 대문자로 시작하면 안됩니다. "Button1"은 "button1"이어야합니다. – camickr
KK, 나는 그것을 실제로 알고있다 - 단지 그것을 놓쳤다. 상기시켜 주셔서 감사합니다 camickr – ob103ninja