Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.knugi;
- import java.awt.EventQueue;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import javax.swing.JFrame;
- import javax.swing.JButton;
- import javax.swing.JLayeredPane;
- import javax.swing.JTextField;
- import javax.swing.SwingConstants;
- public class KikStart implements ActionListener {
- private JFrame frame;
- private JTextField wynikOut;
- private static JButton button1;
- private static JButton button2;
- private static JButton button3;
- private static JButton button4;
- private static JButton button5;
- private static JButton button6;
- private static JButton button7;
- private static JButton button8;
- private static JButton button9;
- protected List<JButton> clear = new ArrayList<JButton>();
- List<JButton> check1 = new ArrayList<>();
- List<JButton> check2 = new ArrayList<>();
- List<JButton> check3 = new ArrayList<>();
- List<JButton> check4 = new ArrayList<>();
- List<JButton> check5 = new ArrayList<>();
- List<JButton> check6 = new ArrayList<>();
- List<JButton> check7 = new ArrayList<>();
- List<JButton> check8 = new ArrayList<>();
- protected List<List<JButton>> check = new ArrayList<>();
- String s;
- private JTextField txtTeraz;
- private JTextField txtWynik;
- private JTextField txtXO;
- private int pX,pO =0;
- public KikStart() {
- initialize();
- loadList();
- }
- private void loadList(){
- clear.add(button1);
- clear.add(button2);
- clear.add(button3);
- clear.add(button4);
- clear.add(button5);
- clear.add(button6);
- clear.add(button7);
- clear.add(button8);
- clear.add(button9);
- check1.add(button1);
- check1.add(button2);
- check1.add(button3);
- check2.add(button4);
- check2.add(button5);
- check2.add(button6);
- check3.add(button7);
- check3.add(button8);
- check3.add(button9);
- check4.add(button1);
- check4.add(button4);
- check4.add(button7);
- check5.add(button2);
- check5.add(button5);
- check5.add(button8);
- check6.add(button3);
- check6.add(button6);
- check6.add(button9);
- check7.add(button1);
- check7.add(button5);
- check7.add(button9);
- check8.add(button3);
- check8.add(button5);
- check8.add(button7);
- check.add(check1);
- check.add(check2);
- check.add(check3);
- check.add(check4);
- check.add(check5);
- check.add(check6);
- check.add(check7);
- check.add(check8);
- }
- private boolean checkWin(){
- for(List<JButton> list : check){
- int i=0;
- String[] win = new String[3];
- for(JButton jb : list){
- win[i]=jb.getText();
- i++;
- }
- if(win[0].equals(s)&&win[1].equals(s)&&win[2].equals(s)){
- if(s.equals("X")){
- pX++;
- }else pO++;
- wynikOut.setText(pX+" : "+pO);
- return true;
- }
- }
- boolean empty = false;
- for(JButton jb : clear){
- if(jb.getText().equals("")){
- empty=true;
- }
- }
- if(empty)return false;
- else return true;
- }
- private void reloadTexts(){
- if(new Random().nextInt(2)==0){
- s="X";
- }else s="O";
- for(JButton a : clear){
- a.setText("");
- }
- }
- private void changeS(){
- if(s.equals("X")){
- s="O";
- }else s="X";
- txtTeraz.setText("Teraz: "+s);
- }
- private void initialize() {
- if(new Random().nextInt(2)==0){
- s="X";
- }else s="O";
- frame = new JFrame("Kółko i krzyżyk");
- frame.setBounds(100, 100, 300, 400);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.getContentPane().setLayout(null);
- JLayeredPane layeredPane = new JLayeredPane();
- layeredPane.setBounds(69, 78, 162, 162);
- layeredPane.setBorder(null);
- frame.getContentPane().add(layeredPane);
- button1 = new JButton("");
- button1.setBounds(0, 0, 54, 54);
- button1.addActionListener(this);
- layeredPane.add(button1);
- button2 = new JButton("");
- button2.setBounds(54, 0, 54, 54);
- button2.addActionListener(this);
- layeredPane.add(button2);
- button3 = new JButton("");
- button3.setBounds(108, 0, 54, 54);
- button3.addActionListener(this);
- layeredPane.add(button3);
- button4 = new JButton("");
- button4.setBounds(0, 54, 54, 54);
- button4.addActionListener(this);
- layeredPane.add(button4);
- button5 = new JButton("");
- button5.setBounds(54, 54, 54, 54);
- button5.addActionListener(this);
- layeredPane.add(button5);
- button6 = new JButton("");
- button6.setBounds(108, 54, 54, 54);
- button6.addActionListener(this);
- layeredPane.add(button6);
- button7 = new JButton("");
- button7.setBounds(0, 108, 54, 54);
- button7.addActionListener(this);
- layeredPane.add(button7);
- button8 = new JButton("");
- button8.setBounds(54, 108, 54, 54);
- button8.addActionListener(this);
- layeredPane.add(button8);
- button9 = new JButton("");
- button9.setBounds(108, 108, 54, 54);
- button9.addActionListener(this);
- layeredPane.add(button9);
- wynikOut = new JTextField();
- wynikOut.setHorizontalAlignment(SwingConstants.CENTER);
- wynikOut.setBorder(null);
- wynikOut.setEditable(false);
- wynikOut.setBounds(156, 333, 122, 28);
- frame.getContentPane().add(wynikOut);
- wynikOut.setColumns(10);
- txtTeraz = new JTextField();
- txtTeraz.setBorder(null);
- txtTeraz.setEditable(false);
- txtTeraz.setText("Teraz: "+s);
- txtTeraz.setHorizontalAlignment(SwingConstants.CENTER);
- txtTeraz.setBounds(0, 0, 278, 28);
- frame.getContentPane().add(txtTeraz);
- txtTeraz.setColumns(10);
- txtWynik = new JTextField();
- txtWynik.setBorder(null);
- txtWynik.setEditable(false);
- txtWynik.setHorizontalAlignment(SwingConstants.RIGHT);
- txtWynik.setText("Wynik:");
- txtWynik.setBounds(74, 333, 83, 28);
- frame.getContentPane().add(txtWynik);
- txtWynik.setColumns(10);
- txtXO = new JTextField();
- txtXO.setBorder(null);
- txtXO.setHorizontalAlignment(SwingConstants.CENTER);
- txtXO.setEditable(false);
- txtXO.setText("X : O");
- txtXO.setBounds(156, 307, 122, 28);
- frame.getContentPane().add(txtXO);
- txtXO.setColumns(10);
- wynikOut.setText(pX+" : "+pO);
- }
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- KikStart window = new KikStart();
- window.frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- JButton jb = (JButton) e.getSource();
- if(jb.getText().equals("")){
- jb.setText(s);
- }
- if(checkWin()){
- reloadTexts();
- }
- changeS();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment