2016-08-30 2 views
0

저는 Java로 페어 게임을 만들고 있습니다. 아이디어는 1에서 100까지 번호가 매겨진 100 개의 JButton이 있으며, 모두 1에서 50까지의 숫자를 배정 받았습니다 (2 배). 아무 버튼이나 클릭하면 해당 버튼에 할당 된 번호가 표시됩니다. 그리고 플레이어는 같은 번호의 두 번째 버튼을 찾아야합니다. JButton에 그 번호를 어떻게 할당 할 수 있습니까? 그들의 이름 (1-100)은 볼 수 있어야만 값에 의한 이름 버튼을 숨기고 이름을 숨길 수 있습니다.JButton을 배열에 연결 하시겠습니까?

package pairgame; 

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.ArrayList; 
import java.util.Collections; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JOptionPane; 
import javax.swing.KeyStroke; 

public class PairGame extends JFrame implements ActionListener 
{ 
    JMenuBar menuBar = new JMenuBar(); 
    JMenu file, help; 
    JMenuItem fileExit, helpAbout; 
    JButton buttons[]; 

    ArrayList <Integer> numbers; 

    void createMenuBar() 
    {   
     file = new JMenu("File"); 
      fileExit = new JMenuItem("Exit"); 
      fileExit.addActionListener(this); 
      fileExit.setAccelerator(KeyStroke.getKeyStroke("ctrl Q")); 

file.add (fileExit); file.setMnemonic ('f');

help = new JMenu("Help"); 
     helpAbout = new JMenuItem("About"); 
     helpAbout.addActionListener(this); 
     helpAbout.setAccelerator(KeyStroke.getKeyStroke("ctrl H")); 
     help.add(helpAbout); 
     help.setMnemonic('h'); 

    menuBar = new JMenuBar(); 
     menuBar.add(file); 
     menuBar.add(help); 
     setJMenuBar(menuBar); 
} 

PairGame() 
{ 
    setTitle("Pair Game"); 
    setSize(600,600); 
    setLocation(400,100); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    setLayout(new GridLayout(10,10)); 

    createMenuBar(); 

             // CREATING GAME MAP 

    numbers = new ArrayList<Integer>(); 
    for(int i=1; i<=50; i++) 
     numbers.add(i); 
    for(int i=51; i<=100; i++) 
     numbers.add(i-50); 

    Collections.shuffle(numbers);  

    buttons = new JButton[100]; 
    for(int i=0; i<100; i++) 
    { 
     buttons[i] = new JButton(""+(i+1)); 
     buttons[i].addActionListener(this); 
     add(buttons[i]); 
    } 


    setVisible(true); 
} 

public static void main(String[] args) 
{ 
    new PairGame(); 
} 


public void actionPerformed(ActionEvent e) 
{ 
    Object source = e.getSource(); 

    if (source==fileExit) 
     System.exit(0); 

    if (source==helpAbout) 
     JOptionPane.showMessageDialog(this, "blablabla", "About", 3);   

} 

}

난 그냥 그렇게 그 전 알파 버전 :

답변

0

당신은 당신의 자신의 클래스를 생성하여 테스트에서 값을 분리 할 수 ​​있기 때문에 나에게 건설 등에 대한 조언을 해달라고 쓰기 시작하는

public class PairButton extends JButton { 

private final int myRealValue; 

public PairButton(int myRealValue){ 
    this.myRealValue = myRealValue; 
} 

public int getMyRealValue() { 
    return myRealValue; 
} 

}

+1

그게 좋은 아이디어 B : JButton에 예를 들어, 확장 ut setName() 및 getName() 내 문제가 해결 된 :) – Kurczaksky

관련 문제