działajacy swing

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package warcaby;

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Color;

import java.awt.Container;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.RenderingHints;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.Scanner;

import java.util.StringTokenizer;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.*;

/**

*

* @author Kasiek

*/

class Okno extends JFrame implements ActionListener, MouseListener

{

Plansza plansza;

Ruchy ruchy;

Bicia bicia;

JButton bNowa;

JButton bZapisz;

JButton bWczytaj;

JButton bZakoncz;

//JButton bGraj;

JLabel lTekst;

Zegar zegar;

private URL clipFile;

public Okno(String Nazwa, int szer, int wys)

{

super(Nazwa);

setLayout(null);

plansza = new Plansza();

// plansza.rozpoczecie();

ruchy = new Ruchy();

bicia = new Bicia();

setSize(szer,wys);

setLocation(10,10);

setFont(new Font("Arial",0,16));

setResizable(false);

setBackground(new Color(220,220,220));

addWindowListener(new WindowAdapter()

{

public void windowClosing (WindowEvent e)

{

System.exit(0);

}

});

bNowa = new JButton("Nowa gra");

bNowa.setSize(110,25);

bNowa.setLocation(400,45);

bNowa.addActionListener(this);

add(bNowa);

bWczytaj = new JButton("Wczytaj stan");

bWczytaj.setSize(110,25);

bWczytaj.setLocation(400,115);

bWczytaj.addActionListener(this);

add(bWczytaj);

bZapisz = new JButton("Zapisz stan");

bZapisz.setSize(110,25);

bZapisz.setLocation(400,80);

bZapisz.addActionListener(this);

add(bZapisz);

bZakoncz = new JButton("Koniec");

bZakoncz.setSize(110,25);

bZakoncz.setLocation(400,150);

bZakoncz.addActionListener(this);

add(bZakoncz);

lTekst = new JLabel("Ruch:");

lTekst.setSize(40,50);

lTekst.setLocation(6,385);

add(lTekst);

zegar=new Zegar();

zegar.setSize(150,25);

zegar.setLocation(480,5);

zegar.setVisible(true);

add(zegar);

zegar.start();

addMouseListener(this);

show();

}

public void update(Graphics g)

{

paint(g);

}

public void paint(Graphics g)

{

RysujPlansze(g);

}

public void RysujPlansze(Graphics g)

{

Image img = createImage(400,430);

Graphics2D g2 = (Graphics2D) img.getGraphics();

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g2.setColor(Color.black);

g2.fillRect(18,38,322,322);

for (int j = 0; j < 8; j++)

{

for (int i = 0; i < 8; i++)

{

if (plansza.pole[i][j] == 0)

g2.setColor(new Color(193,227,221)); //jasny

else

g2.setColor(new Color(75,150,221)); //ciemny

g2.fillRect(20 + 40*i, 40 + 40*j,38,38);

if (plansza.pole[i][j] > 1)

{

g2.setColor(Color.black);

g2.fillOval(21 + 40*i, 41 + 40*j,36,36);

if (plansza.pole[i][j] == 2 || plansza.pole[i][j] == 4)

g2.setColor(new Color(245,240,240));

if (plansza.pole[i][j] == 3 || plansza.pole[i][j] == 5)

g2.setColor(new Color(215,143,220));

g2.fillOval(23 + 40*i, 43 + 40*j,32,32);

if (plansza.pole[i][j] == 4 || plansza.pole[i][j] == 5)

{

g2.setColor(Color.black);

g2.fillOval(26 + 40*i, 46 + 40*j,26,26);

}

}

if (bicia.pole[i][j] != 0)

{

g2.setColor(new Color(215,95,95));

g2.drawRect(20 + 40*i, 40 + 40*j,37,37);

}

if (ruchy.pole[i][j] == 1)

{

g2.setColor(new Color(50,100,250));

g2.drawRect(20 + 40*i, 40 + 40*j,37,37);

}

if (ruchy.pole[i][j] == 2 || ruchy.pole[i][j] == 3)

{

g2.setColor(new Color(150,150,150));

g2.fillRect(20 + 40*i, 40 + 40*j,38,38);

}

}

}

g2.setColor(Color.black); //czarny

g2.fillRect(58,378,42,42);

g2.setColor(new Color(75,150,221)); //ciemny

g2.fillRect(60,380,38,38);

if (ruchy.get_gracz() != 0 )

{

g2.setColor(Color.black);

g2.fillOval(61,381,36,36);

if (ruchy.get_gracz() == 1)

{

g2.setColor(new Color(245,240,240));

}

else

{

g2.setColor(new Color(215,143,220));

}

g2.fillOval(63,383,32,32);

}

// Image obraz = Toolkit.getDefaultToolkit().getImage("dupa.jpg");

g.drawImage(img,0,0,this);

// g.drawImage(obraz, 0, 0, this);

}

public void actionPerformed(ActionEvent ev)

{

Object cel = ev.getSource();

if (cel == bNowa)

{

AudioClip acDzwiek = null;

File flPlik= new File("krotki.wav");

try {

acDzwiek= Applet.newAudioClip( flPlik.toURL());

} catch (MalformedURLException ex) {

Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);

}

acDzwiek.play();

plansza.rozpoczecie();

ruchy.zerowanie();

ruchy.set_gracz(1);

bicia.zerowanie();

repaint();

}

else if(cel==bZakoncz)

{

AudioClip acDzwiek = null;

File flPlik= new File("krotki.wav");

try {

acDzwiek= Applet.newAudioClip( flPlik.toURL());

} catch (MalformedURLException ex) {

Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);

}

acDzwiek.play();

System.exit(0);

}

else if(cel==bZapisz)

{

AudioClip acDzwiek = null;

File flPlik= new File("krotki.wav");

try {

acDzwiek= Applet.newAudioClip( flPlik.toURL());

} catch (MalformedURLException ex) {

Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);

}

acDzwiek.play();

FileWriter plikWy = null;

try

{

plikWy = new FileWriter("nazwa.txt");

for(int i = 0; i < 8; i++)

{

for(int j=0; j<8; j++)

{

plikWy.write(""+(plansza.pole[j][i])+" ");

//write.write(""+" ");

}

//plikWy.write("\r\n");

}

try

{

plikWy.close(); //Zamykanie pliku

}

catch (IOException e)

{

}

}

catch(IOException ex)

{

System.out.println("Błąd operacji na pliku: "+ex);

}

}

else if (cel == bWczytaj)

{

AudioClip acDzwiek = null;

File flPlik= new File("krotki.wav");

try {

acDzwiek= Applet.newAudioClip( flPlik.toURL());

} catch (MalformedURLException ex) {

Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);

}

acDzwiek.play();

int tmp_pole[][] = new int[8][8];

try

{

//File file = new File("nazwa.txt");

File plik1=new File("nazwa.txt");

try (Scanner odczyt = new Scanner(plik1))

{

while (odczyt.hasNextLine())

{

StringTokenizer wyraz_z_tokenem=new StringTokenizer(odczyt.nextLine()," ");

for(int i=0; i<8; i++)

{

for(int j=0; j<8; j++)

{

tmp_pole[i][j]=(Integer.parseInt(wyraz_z_tokenem.nextToken()));

}

}

while (wyraz_z_tokenem.hasMoreElements())

{

System.out.print(wyraz_z_tokenem.nextToken());

}

}

}

} catch (FileNotFoundException ex) {

Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);

}

for(int i=0; i<8; i++)

{

for(int j=0; j<8; j++)

{

System.out.print(tmp_pole[i][j]);

}

System.out.println();

}

plansza.pole = tmp_pole;

plansza.transpozycja();

plansza.wyswietlanie();

ruchy.zerowanie();

ruchy.set_gracz(1);

bicia.zerowanie();

repaint();

}

}

public void mouseClicked(MouseEvent ev)

{

int x = ev.getX();

int y = ev.getY();

if (x >= 20 && x < 340 && y >= 40 && y < 360

&& (x + 22)%40 != 0 && (x + 21)%40 != 0

&& (y + 2)%40 != 0 && (y + 1)%40 != 0)

{

int _x, _y;

_x = (x - 20)/40;

_y = (y - 40)/40;

System.out.println(_x + " " + _y);

bicia.sprawdz_bicia(ruchy.get_gracz(),plansza);

ruchy.klikniecie(_x,_y,plansza,bicia);

repaint();

}

}

public void mousePressed(MouseEvent ev){}

public void mouseReleased(MouseEvent ev){}

public void mouseEntered(MouseEvent ev){}

public void mouseExited(MouseEvent ev){}

}


Wyszukiwarka

Podobne podstrony:
Formalno prawne aspekty dzialalnoości geologiczno górniczej klasyfikacja zasobów
dzialania
Leki o działaniu inotropwym dodatnim
skaner zasada dzialania1
Budowa i dzialanie komputera
Konta wynikowe w działalnosci handlowej8
W 11 Leki działające pobudzająco na ośrodkowy układ
Kierowanie dzialaniami ratowniczymi
Kierowanie dzialalnoscia
Międzynarodowe działania ratownicze
Prawa działań na zbiorach
Nadzór nad działalnością powiatu
(2,3) Działania nieporządane, toksytczne leków Metabolizm, czynniki wpływające na działanie substanc
Sieć działań(diagram strzałkowy) v 2

więcej podobnych podstron