2013-10-24 1 views
-1

Program이라는 메인 클래스에서 만든 플레이어 객체에 액세스하려면 어떻게해야합니까? Die 클래스에 JButton이 만들어 졌습니까?JButton으로 플레이어 개체를 이동하는 방법은 무엇입니까?

많은 다양한 방법으로 실험 한 후에 지금 방향은 ButtonListener이라는 별도의 클래스에 ActionListener를 만드는 것입니다. JButton에 내 Die 클래스 내부

public void roll(int steps) { 
    setSteps(steps); 
    System.out.println("Rolled: " + steps); 
    move(); 
} 

내가 구성 : 내 Player 클래스의 내부

내가하는 JButton으로 호출하고 싶은 방법입니다

public class Die extends JPanel { 

private List<Integer> die = new ArrayList<Integer>(); 
private ImageIcon one, two, three, roll; 
Random rand = new Random(); 
int dieValue = 0; 
Player player = new Player(); 

JButton dieButton; 

/** 
* Constructor for creating the die button 
*/ 
public Die(){ 
    addNumbersToDie(); 
    setDieImages(); 
    dieButton = new JButton(); 
    dieButton.addActionListener(new ButtonListener()); 
    dieButton.setIcon(roll); 
    add(dieButton); 
} 

그리고 여기 내입니다 ButtonListener 클래스 :

public class ButtonListener implements ActionListener { 

    public void actionPerformed(ActionEvent arg0) { 
     //Call out the roll() method. 
    } 
} 

버튼을 눌렀을 때 ctionListener가 제대로 작동하지만 roll(int steps) 메서드를 Player 클래스 내에서 호출하는 방법을 찾지 못했습니다 ...

Player 클래스에 단추를 만들 수 있지만 너무 복잡합니다. 그래서 나는 더 나은 길을 찾고 있습니다.

전체 아이디어는 플레이어를 내 JButton으로 이동시키는 것입니다. Program라고 내 주요 클래스

추가 코드 :

// Create board. 
    Board board = new Board(); 

    // Create new player. 
    Player player = new Player(); 

    // Add player to start. 
    board.getStart().enterField(player); 

    // Check if player is on board. 
    drawBoard(board); 

답변

2

당신은 매개 변수로 플레이어를 취할 것 리스너에 대한 생성자를 만들 수 있습니다. 이와

dieButton.addActionListener(new ButtonListener(player)); 
+0

만 문제는 내가 새로운 플레이어 페이지 참조 만들 것입니다,하지만 난 메인 프로그램 클래스에 정의 된 선수라는 플레이어가 이동할 수 있도록해야합니다

public class ButtonListener implements ActionListener { private Player p; public ButtonListener(Player p){ this.p = p; } public void actionPerformed(ActionEvent arg0) { p.roll(); } } 

은 그럼 그냥 않습니다. 또한 보드 객체에 플레이어 객체를 추가했기 때문에 (내 프로그램 클래스의 코드를 내 질문에 추가했습니다). –

+0

하지만 하나의 버튼/플레이어가 있습니까? 나는 네가 의미하는 것을 얻지 못한다. =) 이걸 좀 더 명확히 해줄 수 있니? –

+0

나는 그것을 설명했다고 생각했지만 네, 한 명의 플레이어와 하나의 버튼이 있습니다. –

관련 문제