import java.awt.*; import java.awt.Color; import java.awt.event.*; import javax.swing.*; public class Tetris extends JFrame implements KeyListener { private JPanel gumbPanel; public static final int velikostKvadratka = 25; public static final int rows = 25; public static final int cols = 10; private JPanel boardPanel; protected static boolean reset=true; protected static boolean down=false; public Tetris(String naslov) { super(naslov); //velikost okna Toolkit tk=Toolkit.getDefaultToolkit(); Dimension d=tk.getScreenSize(); this.setBounds(d.width/10,d.height/10,velikostKvadratka*cols+(cols-1),velikostKvadratka*rows+(rows-1)+40); //zgornji(gumba) in spodnji(kooSis) panel gumbPanel=new JPanel(); boardPanel= new RisiKoordinatniSistem(); //gumba JButton gumbReset=new JButton("Reset"); gumbReset.setMnemonic(KeyEvent.VK_R); gumbReset.setActionCommand("CMD_RESET"); gumbReset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // kako bi klical direkt tuki metodo iz drugega classa // boardPanel.boardReset(); reset = true; down = false; repaint(); } }); //dodaj gumba na panel gumbPanel.add(gumbReset); //dodaj kooSis. na frame this.getContentPane().add(gumbPanel,BorderLayout.SOUTH); this.getContentPane().add(boardPanel,BorderLayout.CENTER); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { Tetris frame = new Tetris("Tetris"); } } class RisiKoordinatniSistem extends JPanel { Deska board = new Deska(25,10); Piece figura; public void boardReset() { board.resetirajDesko(); } public void paintComponent(Graphics g) { super.paintComponent(g); int width=this.getSize().width; int height=this.getSize().height; this.setBackground(Color.LIGHT_GRAY); narisiPolje(g,width,height); if (Tetris.reset) { boardReset(); figura = new Piece((int)(Math.random()*7)); board.dodajFiguro(figura); narisiPolje(g,width,height); } } }