import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class Canvas extends JFrame { private static final int CANVAS_WIDTH = 500; private static final int CANVAS_HEIGHT = 500; private static final int AU_LINE_HEIGHT = CANVAS_HEIGHT/4*3; private int crashes = 0; private int x1; private int x2; private int y1; private int y2; private int line = 0; private final DrawCanvas canvas; public Canvas() { this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.pack(); this.setSize(CANVAS_WIDTH,CANVAS_HEIGHT); this.setLocationRelativeTo(null); this.setTitle("Canvas Desktop"); this.setVisible(true); this.canvas = new DrawCanvas(); this.canvas.setPreferredSize(new Dimension(CANVAS_WIDTH, CANVAS_HEIGHT)); add(canvas); addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DOWN) { System.out.println("Zmáčknuto tlačítko DOWN"); if (line >= AU_LINE_HEIGHT) { if (crashes == 0) { System.out.println("succes"); crashes++; x1 = CANVAS_WIDTH/2; x2 = CANVAS_WIDTH/2; y1 = line; y2 = line; } x1 += 10; y1 -= 10; x2 -= 10; y2 -= 10; System.out.println(x1); System.out.println(x2); System.out.println(y1); System.out.println(y2); repaint(); } else { line += 10; repaint(); } } } @Override public void keyReleased(KeyEvent e) { } }); } public class DrawCanvas extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); setBackground(Color.BLUE); g.drawLine(CANVAS_WIDTH/2,0,CANVAS_WIDTH/2,line); g.drawLine(0,AU_LINE_HEIGHT, CANVAS_WIDTH, AU_LINE_HEIGHT); System.out.println(crashes); if (crashes > 0) { g.drawLine(CANVAS_WIDTH/2,line, x1, y1); g.drawLine(CANVAS_WIDTH/2,line, x2, y2); } } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new Canvas(); } }); } }