Exercise 1 1) The tooltip can be inserted by inserting a selText.setToolTipText("type part of the name here to filter the list"); just after the lines // and the text field selText = new JTextField( 12 ); Notice, in the beginning of the JToolTip class API, there is a link "How to Use Tool Tips". Following this brings an example which is the one which can be used. 2) In the class MyWindow, the lines: final SelectingList students = new SelectingList(OOPStudent.students); this.getContentPane().add( students, "West"); final OOPStudentDelegate sd = new OOPStudentDelegate(); getContentPane().add( (Component)sd, "Center"); Are replaced by: final SelectingList students = new SelectingList(OOPStudent.students); //this.getContentPane().add( students, "West"); final OOPStudentDelegate sd = new OOPStudentDelegate(); //getContentPane().add( (Component)sd, "Center"); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, students, sd); splitPane.setOneTouchExpandable(true); splitPane.setDividerLocation(150); this.getContentPane().add( splitPane); Exercise 2 The line new Thread( new InsertHaHa( document ) ).start(); is replaces by: // ex 2.1 final Timer timer = new Timer(3000, new ActionListener(){ public void actionPerformed(ActionEvent e){ try{ document.insertString(0, "HaHa", null); }catch(Exception nono){} } }); // ex 2.2 - is solved using the API functions timer.setInitialDelay(10000); // ex 2.3 - is solved using the API functions //timer.setInitialDelay(15000); //timer.setRepeats(false); // ex 2.4 // create the slider with an anonymous ChangeListener inside. // The interval of the slider is 1/2 to 15 seconds. JSlider slider = new JSlider(JSlider.HORIZONTAL, 500, 15000, 3000); slider.addChangeListener(new ChangeListener(){ public void stateChanged(ChangeEvent e) { JSlider source = (JSlider)e.getSource(); if (!source.getValueIsAdjusting()) { int newDelay = (int)source.getValue(); timer.setDelay(newDelay); } }}); c.add(slider); timer.start();