import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.TimerTask; public class GUIApp extends JFrame { private Draw draw; private int x1; private int x2; private int y1; private int y2; private int linex1,liney1, linex2,liney2; private boolean way; private java.util.Timer timer; public GUIApp() throws HeadlessException { setSize(500,500); setLocationRelativeTo(null); draw = new Draw(); add(draw); timer = new java.util.Timer(); x1 = 100; x2 = 100; y1 = 100; y2 = 200; linex1 = 50; liney1 = 400; linex2 = 400; liney2 = 400; way = true; timer.schedule(new TimerTask() { @Override public void run() { isCollision(); if (way) { y2 = y2 + 25; } else { x2 = x2 + 25; y2 = y2 - 25; } repaint(); } },3500,1500); addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DOWN) { y2 = y2 + 25; repaint(); } } @Override public void keyReleased(KeyEvent e) { } }); setVisible(true); } private void isCollision () { if(y2>= liney2) { way = false; } } class Draw extends JPanel { @Override protected void paintComponent(Graphics g) { g.setColor(Color.RED); g.drawLine(x1,y1,x2,y2); g.drawLine(linex1, liney1, linex2,liney2); } } public static void main(String[] args) { new GUIApp(); } }