Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.19 KB | None | 0 0
  1. package statki;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.PrintWriter;
  5. import java.util.Scanner;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.Random;
  9.  
  10. import javax.swing.*;
  11. import javax.swing.event.ListSelectionEvent;
  12. import javax.swing.event.ListSelectionListener;
  13.  
  14. import java.awt.*;
  15. import java.awt.event.*;
  16. import statki.Flota;
  17. /**
  18.  * @author kob
  19.  *
  20.  */
  21. public class interfejs  {
  22.     static JTextArea tekst;
  23.     JTextField []  polaTextowe = new JTextField[26];
  24.     JButton przyciskz, graj, sFloty1, sFloty2, statystyki;
  25.     JLabel [] etykiety = new JLabel[18];
  26.     JFrame ramka;
  27.     DaneStatkow lol= new DaneStatkow();
  28.     Flota gracz1 ;
  29.     Flota gracz2 ;
  30.     JList listaStatkow;
  31.     String[] listaOpcji = {"Maly transportowiec", "Duzy Trasportowiec", "Lekki Mysliwiec", "Ciezki Mysliwiec",
  32.             "Krazownik", "Okret Wojenny", "Statek Kolonizacyjny", "Recykler", "Sonda Szpiegowska", "Bombowiec", "Niszczyciel", "Gwiazda Smierci",
  33.             "Pancernik"};
  34.    
  35.     Statek statekZlisty;
  36.     JLabel nazwa, atak, oslona, punktystruturalne;
  37.     JPanel panelEtykietS = new JPanel();
  38.    
  39.    
  40.    
  41.     public static void main(String[] args) {
  42.         interfejs gui = new interfejs();
  43.         gui.tworzGUI();
  44.        
  45.        
  46.     }
  47.    
  48.     public void tworzGUI() {
  49.         //inicjalizacji ramki czyli nowego okna
  50.        
  51.         ramka = new JFrame();
  52.         ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  53.        
  54.        
  55.         //inicjalizacja paneli oraz ich ustawien
  56.         JPanel panelgracz1 = new JPanel();
  57.         panelgracz1.setLayout(new BoxLayout(panelgracz1, BoxLayout.Y_AXIS));
  58.         panelgracz1.setBackground(Color.lightGray);
  59.        
  60.        
  61.         JPanel panelgracz2 = new JPanel();
  62.         panelgracz2.setLayout(new BoxLayout(panelgracz2, BoxLayout.Y_AXIS));
  63.         panelgracz2.setBackground(Color.lightGray);
  64.        
  65.         JPanel panelEtykiet = new JPanel();
  66.         panelEtykiet.setLayout(new BoxLayout(panelEtykiet, BoxLayout.Y_AXIS));
  67.        
  68.         //inicjalizacja panelu w pione
  69.         JPanel glowny = new JPanel();
  70.         glowny.setLayout(new BoxLayout(glowny, BoxLayout.X_AXIS));
  71.        
  72.        
  73.         //inicjalizzacja textfieldow
  74.        
  75.         for (int i=0; i<26; i++) {
  76.             polaTextowe[i]= new JTextField(15);
  77.         }
  78.         // inicjalizacj etykiet poziom
  79.         etykiety[0]= new JLabel("FLOTA");
  80.         etykiety[1]= new JLabel("GRACZ 1");
  81.         etykiety[2]= new JLabel("GRACZ 2");
  82.        
  83.         //inicjalizacja etykiet pion
  84.         etykiety[3]= new JLabel("MAŁY TRANSPORTOWIEC");
  85.         etykiety[4]= new JLabel("DUZY TRANSPORTOWIEC");
  86.         etykiety[5]= new JLabel("LEKKI MYSLIWIEC ");
  87.         etykiety[6]= new JLabel("CIEZKI MYSLIWIEC");
  88.         etykiety[7]= new JLabel("KRAZOWNIK");
  89.         etykiety[8]= new JLabel("OKRET WOJENNY");
  90.         etykiety[9]= new JLabel("STATEK KOLONIZACYJNY");
  91.         etykiety[10]= new JLabel("RECYKLER");
  92.         etykiety[11]= new JLabel("SONDA SZPIEGOWSKA");
  93.         etykiety[12]= new JLabel("BOMBOWIEC");
  94.         etykiety[13]= new JLabel("NISZCZYCIEL");
  95.         etykiety[14]= new JLabel("GWIAZDA_SMIERCI");
  96.         etykiety[15]= new JLabel("PANCERNIK");
  97.        
  98.        
  99.         //inicjalizacji gozikow
  100.         przyciskz = new JButton("ZapiszGracza");
  101.         przyciskz.addActionListener(new Przycisk1());
  102.        
  103.         //dodawanie do paneli
  104.        
  105.  
  106.        
  107.         //dodawanie pol do gracza2
  108.         panelgracz2.add(etykiety[2]);
  109.         for(int y=13; y<26; y++) {
  110.             panelgracz2.add(polaTextowe[y]);
  111.         }
  112.        
  113.         //dodawanie etykiet do panelu etykiet
  114.         panelEtykiet.add(etykiety[0]);
  115.         for(int zz=3; zz<16; zz++ ) {
  116.             panelEtykiet.add(etykiety[zz], BorderLayout.LINE_START);
  117.         }
  118.         //dodanie pol od gracza 1
  119.         panelgracz1.add(etykiety[1]);
  120.         for(int z=0;z<13;z++) {
  121.             panelgracz1.add(polaTextowe[z],BorderLayout.LINE_END );
  122.         }
  123.        
  124.         //dodawanie do poziomego panelu
  125.         glowny.add(panelEtykiet);
  126.         glowny.add(panelgracz1);
  127.         glowny.add(panelgracz2);
  128.        
  129.        
  130.         //parametry okna
  131.         ramka.getContentPane().add(BorderLayout.SOUTH, przyciskz);
  132.         ramka.getContentPane().add(BorderLayout.CENTER, glowny);
  133.         ramka.setSize(500,500);
  134.         ramka.setVisible(true);
  135.        
  136.     }
  137.    
  138.     public class Przycisk1 implements ActionListener{
  139.  
  140.         @Override
  141.         public void actionPerformed(ActionEvent e) {
  142.             gracz1 =new Flota("Gracz 1", polaTextowe[0].getText(), polaTextowe[1].getText(), polaTextowe[2].getText(), polaTextowe[3].getText(), polaTextowe[4].getText(), polaTextowe[5].getText(), polaTextowe[6].getText(), polaTextowe[7].getText(), polaTextowe[8].getText(), polaTextowe[9].getText(), polaTextowe[10].getText(), polaTextowe[11].getText(), polaTextowe[12].getText() );
  143.             gracz2 = new Flota("Gracz 2", polaTextowe[13].getText(), polaTextowe[14].getText(), polaTextowe[15].getText(), polaTextowe[16].getText(), polaTextowe[17].getText(), polaTextowe[18].getText(), polaTextowe[19].getText(), polaTextowe[20].getText(), polaTextowe[21].getText(), polaTextowe[22].getText(), polaTextowe[23].getText(), polaTextowe[24].getText(), polaTextowe[25].getText());
  144.             okno2();   
  145.         }
  146.        
  147.     }
  148.    
  149.     public void okno2() {
  150.         // Czyszczenie starej ramki
  151.         ramka.getContentPane().removeAll();
  152.         ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  153.        
  154.         // inicjalizacja panelu
  155.        
  156.         JPanel panel = new JPanel();
  157.         panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
  158.         // inicjalizowanie text arei
  159.        
  160.         tekst = new JTextArea(30,50);
  161.         tekst.setLineWrap(true);
  162.         tekst.setEditable(false);
  163.        
  164.         // inicjolizowanie przewijania
  165.         JScrollPane przewijanie = new JScrollPane(tekst);
  166.         przewijanie.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  167.         przewijanie.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  168.        
  169.         // inicjowanie guzikow
  170.         graj = new JButton("GRAJ");
  171.         graj.addActionListener(new Pgraj());
  172.         sFloty1 = new JButton("Stan Floty1");
  173.         sFloty1.addActionListener(new PsFloty1());
  174.         sFloty2 = new JButton("Stan Floty2");
  175.         sFloty2.addActionListener(new PsFloty2());
  176.         statystyki = new JButton("Statystyki");
  177.         statystyki.addActionListener(new Pstatystyki());
  178.        
  179.         //dodawanie do panelu
  180.         panel.add(sFloty1);
  181.         panel.add(statystyki);
  182.         panel.add(sFloty2);
  183.         //Dodawanie elementow do ramki
  184.         ramka.getContentPane().add(BorderLayout.CENTER, przewijanie);
  185.         ramka.getContentPane().add(BorderLayout.SOUTH, graj);
  186.         ramka.getContentPane().add(BorderLayout.WEST, panel);
  187.         ramka.setSize(600,600);
  188.         ramka.setVisible(true);
  189.     }
  190.    
  191.    
  192.    
  193.     //---------------------------------strefa inicjalizacji przycislkow--------------------------------
  194.     /**
  195.      * @author Oskar
  196.      *  Metoda obslugajuca zadarzenia przycisku sFloty1
  197.      *
  198.      */
  199.     public class PsFloty1 implements ActionListener{
  200.         @Override
  201.         public void actionPerformed(ActionEvent e) {
  202.             StanFlotyOkno(gracz1); 
  203.         }
  204.        
  205.     }
  206.    
  207.     public class PsFloty2 implements ActionListener{
  208.         @Override
  209.         public void actionPerformed(ActionEvent e) {
  210.              StanFlotyOkno(gracz2);
  211.         }
  212.        
  213.     }
  214.    
  215.     public class Pstatystyki implements ActionListener{
  216.  
  217.         @Override
  218.         public void actionPerformed(ActionEvent e) {
  219.             Statystykiokno();  
  220.         }
  221.        
  222.     }
  223.    
  224.     public class Pgraj implements ActionListener{
  225.  
  226.         @Override
  227.         public void actionPerformed(ActionEvent e) {
  228.             start(gracz1, gracz2);
  229.         }
  230.        
  231.     }
  232.    
  233.    
  234.    
  235.    
  236.    
  237.     //-----------------------------------Strefa tworzenia pozostalych okien---------------------------------
  238.    
  239.     /**
  240.      * metoda tworzaca okna stanu floty
  241.      */
  242.     public void StanFlotyOkno(Flota obj) {
  243.        
  244.         ramka = new JFrame("Stan Floty "+obj.NazwaFloty);
  245.         ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  246.         //inicjalizacja paneli oraz ich ustawien
  247.                 JPanel panelFloty = new JPanel();
  248.                 panelFloty.setLayout(new BoxLayout(panelFloty, BoxLayout.Y_AXIS));
  249.                 panelFloty.setBackground(Color.lightGray);
  250.                
  251.                
  252.                 JPanel panelEtykiet = new JPanel();
  253.                 panelEtykiet.setLayout(new BoxLayout(panelEtykiet, BoxLayout.Y_AXIS));
  254.                
  255.                 //inicjalizacja panelu w pione
  256.                 JPanel glowny = new JPanel();
  257.                 glowny.setLayout(new BoxLayout(glowny, BoxLayout.X_AXIS));
  258.                
  259.                 //inicjalizowanie pol tekstowych
  260.                
  261.                 JTextField[] Tstat;
  262.                 Tstat= new JTextField[13];
  263.                 for (int x=0; x<13 ; x++) {
  264.                     Tstat[x]= new JTextField(5);
  265.                     Tstat[x].setText(""+obj.aktualny_stan()[x]);
  266.                     Tstat[x].setEditable(false);
  267.                 }
  268.                
  269.                 //dodawanie etykiet do panelu etykiet
  270.                 //panelEtykiet.add(etykiety[0]);
  271.                 for(int zz=3; zz<16; zz++ ) {
  272.                     panelEtykiet.add(etykiety[zz]);
  273.                     panelFloty.add(Tstat[zz-3]);
  274.                 }
  275.                 glowny.add(panelEtykiet);
  276.                 glowny.add(panelFloty);
  277.                 ramka.getContentPane().add(BorderLayout.CENTER, glowny);
  278.                 ramka.setSize(500,500);
  279.                 ramka.setVisible(true);
  280.    
  281.     }
  282.    
  283.    
  284.     public void Statystykiokno() {
  285.         //inicjalizacja okna
  286.         ramka = new JFrame("Statystyki Statkoe ");
  287.         ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  288.         //statekZlisty = new Statek("mt");
  289.        
  290.        
  291.         //inicjalizacja listy
  292.        
  293.         listaStatkow = new JList(listaOpcji);
  294.         listaStatkow.addListSelectionListener(new LListaStatkow() );
  295.         listaStatkow.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  296.         //inicjalizacja paska do przewijania
  297.         JScrollPane scrollPane = new JScrollPane(listaStatkow);
  298.         scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  299.         scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  300.        
  301.         //inicjalizacja paneli oraz ich ustawien
  302.         panelEtykietS.setLayout(new BoxLayout(panelEtykietS, BoxLayout.Y_AXIS));
  303.         //danestat();
  304.         //panelEtykietS.removeAll();
  305.         danePanelstat();
  306.         //ustawienia koncowe ramki
  307.         ramka.getContentPane().add(BorderLayout.SOUTH, scrollPane);
  308.         ramka.getContentPane().add(BorderLayout.WEST, panelEtykietS);
  309.         ramka.setSize(500,500);
  310.         ramka.setVisible(true);    
  311.                
  312.  
  313.        
  314.     }
  315.     public class LListaStatkow implements ListSelectionListener{
  316.  
  317.         @Override
  318.         public void valueChanged(ListSelectionEvent e) {
  319.             // TODO Auto-generated method stub\
  320.             //statekZlisty = new Statek("mt");
  321.             if (!e.getValueIsAdjusting()) {
  322.                 String opcja = (String) listaStatkow.getSelectedValue();
  323.                
  324.                 if (opcja.equals(listaOpcji[0])) {statekZlisty = new Statek("mt");
  325.                 danestat();
  326.                 danePanelstat();
  327.                 System.out.println(opcja);
  328.                 }
  329.                 if (opcja.equals(listaOpcji[1])) {statekZlisty = new Statek("dt");
  330.                 danestat();
  331.                 danePanelstat();
  332.                 }
  333.                 if (opcja.equals(listaOpcji[2])) {statekZlisty = new Statek("lm");
  334.                 danestat();
  335.                 danePanelstat();
  336.                 }
  337.                 if (opcja.equals(listaOpcji[3])) {statekZlisty = new Statek("cm");
  338.                 danestat();
  339.                 danePanelstat();
  340.                 }
  341.                 if (opcja.equals(listaOpcji[4])) {statekZlisty = new Statek("kr");
  342.                 danestat();
  343.                 danePanelstat();
  344.                 }
  345.                 if (opcja.equals(listaOpcji[5])) {statekZlisty = new Statek("ow");
  346.                 danestat();
  347.                 danePanelstat();
  348.                 }
  349.                 if (opcja.equals(listaOpcji[6])) {statekZlisty = new Statek("sk");
  350.                 danestat();
  351.                 danePanelstat();
  352.                 }
  353.                 if (opcja.equals(listaOpcji[7])) {statekZlisty = new Statek("re");
  354.                 danestat();
  355.                 danePanelstat();
  356.                 }
  357.                 if (opcja.equals(listaOpcji[8])) {statekZlisty = new Statek("ss");
  358.                 danestat();
  359.                 danePanelstat();
  360.                 }
  361.                 if (opcja.equals(listaOpcji[9])) {statekZlisty = new Statek("b");
  362.                 danestat();
  363.                 danePanelstat();
  364.                 }
  365.                 if (opcja.equals(listaOpcji[10])) {statekZlisty = new Statek("n");
  366.                 danestat();
  367.                 danePanelstat();
  368.                 }
  369.                 if (opcja.equals(listaOpcji[11])) {statekZlisty = new Statek("gs");
  370.                 danestat();
  371.                 danePanelstat();}
  372.                
  373.                 if (opcja.equals(listaOpcji[12])) {statekZlisty = new Statek("p");
  374.                 danestat();
  375.                 danePanelstat();}
  376.                
  377.             }
  378.             else {statekZlisty = new Statek("mt");
  379.             danestat();
  380.             panelEtykietS.removeAll();
  381.             danePanelstat();
  382.                
  383.             }
  384.            
  385.            
  386.         }
  387.     }
  388.        
  389.    
  390.    
  391.     public void danestat() {
  392.         nazwa = new JLabel(statekZlisty.nazwa);
  393.         atak = new JLabel(statekZlisty.statystyki()[1]);
  394.         oslona = new JLabel(statekZlisty.statystyki()[2]);
  395.         punktystruturalne = new JLabel(statekZlisty.statystyki()[3]);
  396.     }
  397.     public void danePanelstat() {
  398.         panelEtykietS.add(nazwa);
  399.         panelEtykietS.add(atak);
  400.         panelEtykietS.add(oslona);
  401.     }
  402.    
  403.  
  404.    
  405.    
  406.     public static void drukuj(String napis) {
  407.         tekst.append(""+napis+"\n");
  408.     }
  409.    
  410.    
  411.  
  412.         public void start(Flota gracz1, Flota gracz2) {
  413.        
  414.             for (int i=0; i<6; i++) {
  415.                 interfejs.drukuj(">>>>>> RUNDA NR "+(i+1)+" <<<<< \n");
  416.                 interfejs.drukuj("Ilosc statkow floty 1: "+gracz1.flotaa.size()+" ilosc statkow floty 2 : "+gracz2.flotaa.size()+"\n");
  417.                 if(!gracz1.flotaa.isEmpty() && !gracz2.flotaa.isEmpty()) {
  418.                     interfejs.drukuj(gracz1.NazwaFloty+ "wybiera cel z floty "+gracz2.NazwaFloty+"\n");
  419.                     gracz1.wybierz_cel(gracz2);
  420.                     if(!gracz2.flotaa.isEmpty())gracz2.usun_statki();
  421.                     interfejs.drukuj(gracz2.NazwaFloty+" wybiera cel z "+gracz1.NazwaFloty+"\n");
  422.                     gracz2.wybierz_cel(gracz1);
  423.                     if(!gracz1.flotaa.isEmpty())gracz1.usun_statki();
  424.                     }
  425.             }
  426.             interfejs.drukuj(">>>>>wygrala flota: ");
  427.             if (gracz1.flotaa.size()>gracz2.flotaa.size()) {
  428.                 interfejs.drukuj(gracz1.NazwaFloty+"<<<<<\n");
  429.             }
  430.             else if (gracz2.flotaa.size()>gracz1.flotaa.size()) {
  431.                 interfejs.drukuj(gracz2.NazwaFloty+"<<<<<\n");
  432.             }
  433.             else interfejs.drukuj("jest remis");
  434.  
  435.         }
  436.  
  437.    
  438.  
  439. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement