public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;

        if (startingNode != null)
        {
            g2.setStroke(new BasicStroke(5));
            g2.drawLine(startingNode.getX(), startingNode.getY(),
                this.mouseX, this.mouseY);
        }

        for (Pair<DrawNode, DrawNode> connection : connections)
        {
            g2.setStroke(new BasicStroke(5));
            g2.drawLine(connection.fst.getX(),
                connection.fst.getY(),
                connection.snd.getX(),
                connection.snd.getY());
        }

        for (DrawNode node : nodes)
        {
            drawNode(node);
        }

        this.instructions.setVisible(nodes.isEmpty());
    }