2013-12-22 3 views
1
package game; 

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JOptionPane; 


public interface Listeners 
{ 
    static PatternGame game = new PatternGame(); 
    InputGame game2 = new InputGame(); 
    static class inst implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      if ("inst".equals(e.getActionCommand())) 
      { 

      } 
     } 
    } 
    static class play implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      if ("play".equals(e.getActionCommand())) 
      { 
       menu.mf.dispose(); 
       PatternGame.gameStart(); 

      } 
     } 
    } 
    static class exit implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      if ("exit".equals(e.getActionCommand())) 
      { 
       System.exit(0); 
      } 
     } 
    } 
    static class input implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      if (InputGame.numOfClicks != 0) 
      { 
       InputGame.button = (JButton) e.getSource(); 
       InputGame.button.setText("X"); 
       InputGame.numOfClicks--; 
      } 
      else 
      { 
       if (InputGame.checkCorrect()) 
       { 
        JOptionPane.showConfirmDialog(null, "Would you like another pattern?"); 
        PatternGame.order++; 
        PatternGame.gameStart(); 
       } 
       else 
       { 
        JOptionPane.showMessageDialog(null, "Incorrect!"); 
        menu.start(); 
       } 
      } 

     } 
    } 
} 
package game; 

import java.awt.Dimension; 
import java.awt.GridLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class InputGame implements Properties,Listeners{ 
    public static JFrame gf = new JFrame(); 
    public static JButton button = new JButton(); 
    public static int height = 800; 
    public static int width = 600; 
    public static int gsize = 4; 
    public static int order =1; 
    public static Dimension size = new Dimension(height,width); 
    public static menu Menu = new menu(); 
    public static GridLayout Ggrid = new GridLayout(gsize,gsize); 
    public static int numOfClicks =0; 
    public static int numCorrect=0; 
    public static int[][] input = new int[][]{ 
     {0,0,0,0}, 
     {0,0,0,0}, 
     {0,0,0,0}, 
     {0,0,0,0} 

    }; 

    //public static Thread d; 


    public static void setup() { 
     gf.dispose(); 
     gf = new JFrame(); 
     gf.setLocation(300,100); 
     gf.setSize(size); 
     gf.setResizable(false); 
     gf.setLayout(Ggrid); 
     gf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     PatternGame.clear(); 
     blank(); 
     gf.setVisible(true); 
     System.out.print(numOfClicks); 

    } 

    public static void blank() 
    { 
     for (int a =0;a<4;a++) 
     { 
      for (int b =0;b<4;b++) 
      { 
       button = new JButton(""); 
       button.setActionCommand(""); 
       button.addActionListener(new input()); 
       gf.add(button); 
      } 
     } 
    } 
    public static void input() 
    { 
     for (int a=0;a<4;a++) 
     { 
      for(int b=0;b<4;b++) 
      { 
       String x = button.getText(); 

       if (x.equals("X")) 
       { 
        input[a][b] = 1; 
       } 
       else if (x.equals("")) 
       { 
        input[a][b] = 0; 
       } 
       System.out.println(input[a][b]); 

      } 
     } 
    } 
    public static boolean checkCorrect() 
    { 
     input(); 
     for (int a=0;a<4;a++) 
     { 
      for(int b=0;b<4;b++) 
      { 
       if (order == 1) 
       { 
        if (handlebars[a][b] == 1) 
        { 
         JButton button = new JButton("X"); 
         InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
       if (order == 2) 
       { 
        if (ys[a][b] == 1) 
        { 
        JButton button = new JButton("X"); 
        InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
       if (order == 3) 
       { 
        if (spaceShip[a][b] == 1) 
        { 
        JButton button = new JButton("X"); 
        InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
       if (order == 4) 
       { 
        if (flock[a][b] == 1) 
        { 
        JButton button = new JButton("X"); 
        InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
       if (order == 5) 
       { 
        if (percent[a][b] == 1) 
        { 
        JButton button = new JButton("X"); 
        InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
       if (order == 6) 
       { 
        if (square[a][b] == 1) 
        { 
        JButton button = new JButton("X"); 
        InputGame.numOfClicks++; 

        } 
        else 
        { 
         JButton button = new JButton(""); 
        } 
       } 
      } 
     } 
     return false; 
    } 


} 

Хорошо, это мой код. Теперь то, что я хочу, чтобы программа выполняла, заключается в том, чтобы программа отображала пустой экран (который я сделал), а затем, когда пользователь нажимает одну из кнопок, и он помещает X на эту кнопку. Затем после 6 щелчков для программы, чтобы перевести шаблон, который они помещают во входной массив, поэтому я могу сравнить входной массив с массивом шаблонов и быть в состоянии сообщить пользователю, правильно ли он или нет, и двигаться дальше. Теперь эта программа показывает пустой экран, а затем при нажатии кнопки отображает X. Я получил его, чтобы проверить одну кнопку, но я не знаю, как проверить их все. Итак, как я могу проверить каждую кнопку для текста, который он держит.Как я могу получить источник кнопки и заставить ее работать?

ответ

2

Вы можете вызвать getComponents() на материнской container- ли панель, рамка или окно, а затем проверить, если он является экземпляром кнопки, а затем проверить текст, установленный на нем, как это:

Component[] comps = parent.getComponents(); 
for(Component c:comps){ 
    if(c instanceof JButton){ 
     JButton btn = (JButton) c; 
     String text = btn.getText(); 
     //Use text for whatever, add it to an array or something 
    } 
} 

Надежда вы получите идею

+0

Хорошо спасибо за ответ –

Смежные вопросы