ok so keep this in the onStart
GUI window = new GUI();
Your gui class extend JFrame so use it. What you did was created a new jFrame instance instead of using the classes JFrame. So delete
frame = new JFrame();
private JFrame frame;
you will get a few error with "frame." simply remove it and it should be good.
finally at the end of gui constructor the last line should be
Gui() {
//stuff
setVisible(true);
}
no need for setVisible in the onstart since its in the constructor