Recall: 

  http://silo.cs.indiana.edu:8346/c212/sum2019/0530a.phps

Let's build and draw: 

public class BST<T extends Comparable<T>> {
  private Node<T> root;
  public BST() {
    this.root = null;
  }
  public BST(Node<T> node) {
    this.root = node;
  }
  public BST(T value) {
    this.root = new Node<T>(value);
  }
  public void insert(T value) {
    if (this.root == null)
      this.root = new Node<T>(value);
    else if (this.root.value().compareTo(value) > 0)
      this.root.left.insert(value);
    else if (this.root.value().compareTo(value) < 0)
      this.root.right.insert(value);
  }
  public String print() {
    if (this.root == null) return "()";
    else return "(" + this.root.print() + ")";
  }
  public String toString() {
    return this.root == null ? "" : this.root + "";
  }
  public static void main(String[] args) {
    BST<Integer> bst = new BST<Integer>();     
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print()); 
    bst.insert(3); 
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print()); 
    bst.insert(1); 
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print()); 
    bst.insert(2); 
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print());   
    bst.insert(6); 
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print()); 
    bst.insert(4); 
    System.out.println(
    "                                            toString: " + 
                       bst + "\nprint: " + bst.print());
  }
}

class Node<T extends Comparable<T>> {
  T value;
  BST<T> left, right;
  public Node(T value) {
    this.value = value;
    this.left = new BST<T>();
    this.right = new BST<T>();
  }
  public String toString() {
    return this.left + " " + this.value + " " + this.right;
  }
  public T value() {
    return this.value;
  }
  public String print() {
    return this.value + " " + this.left.print() + " " + this.right.print();
  }
}

--

We start with these three classes plus Node above unchanged: 

import javax.swing.JComponent; 
import java.awt.Graphics; 

public class Screen extends JComponent {
  BST<Integer> bst; 
  public Screen() {
    this.bst = new BST<Integer>();     
    this.bst.insert(3); 
    this.bst.insert(1); 
    this.bst.insert(2); 
    this.bst.insert(6); 
    this.bst.insert(4); 
  }
  public void paintComponent(Graphics g) {
    // g.drawOval(30, 30, 200, 200);  
    this.bst.draw(g); 
  }
}

--

import javax.swing.JFrame;

public class Chase {
  public static void main(String[] args) {
    JFrame a = new JFrame(); 
    a.add(new Screen()); 
    a.setSize(500, 500);
    a.setVisible(true);
  }
}

--

import java.awt.Graphics;
import java.awt.Color;

public class BST<T extends Comparable<T>> {
  private Node<T> root;
  public BST() { this.root = null; }
  public BST(Node<T> node) { this.root = node; }
  public BST(T value) { this.root = new Node<T>(value); }
  public void insert(T value) {
    if (this.root == null)
      this.root = new Node<T>(value);
    else if (this.root.value().compareTo(value) > 0)
      this.root.left.insert(value);
    else if (this.root.value().compareTo(value) < 0)
      this.root.right.insert(value);
  }
  public String print() {
    if (this.root == null) return "()";
    else return "(" + this.root.print() + ")";
  }
  public String toString() {
    return this.root == null ? "" : this.root + "";
  }
  public void draw(Graphics g) {
    g.setColor(Color.YELLOW); 
    g.fillOval(200, 200, 100, 100); 
  }
}