Question: TASK: It would be nice to be able to directly tell the panel to go into wait mode in the same way that the panel'snotifymethod

TASK: It would be nice to be able to directly tell the panel to go into wait mode in the same way that the panel'snotifymethod is called. (i.e.notifyis called directly on the panel, whereaswaitis called indirectly through thesuspendedattribute.) Try altering the theactionPerformedmethod of theSliderListenerinner class in theCircleFrameclass as follows, and see what happens:

 ... if (!CircleFrame.this.slider.getValueIsAdjusting()) { // Update the delay when the slider stops moving. final int speed = CircleFrame.this.slider.getValue(); if (CircleFrame.this.circlePanel.isSuspended() && speed > 0) { // Restart the circle resizing. synchronized (CircleFrame.this.circlePanel) { // Remove thread from wait() CircleFrame.this.circlePanel.notify(); } } else if(speed == 0) { // Attempt to call 'wait' directly on the running object. CircleFrame.this.circlePanel.wait(); } CircleFrame.this.circlePanel.setSpeed(speed); } ...

TASK: In theSpawnViewclass, redefine thethreadPoolattribute as:

private final ExecutorService threadPool = Executors.newFixedThreadPool(4);

What happens when you spawn more than four circle windows? What happens if you close any of the first four windows?

TASK: Add one or more new buttons to change the color of the circle to a new color.

I was not able to add the zip files, so instead I have attached images to this question.

CircleFrame.java

TASK: It would be nice to be able to directly tell thepanel to go into wait mode in the same way that thepanel'snotifymethod is called. (i.e.notifyis called directly on the panel, whereaswaitis called indirectlythrough thesuspendedattribute.) Try altering the theactionPerformedmethod of theSliderListenerinner class in theCircleFrameclass asfollows, and see what happens: ... if (!CircleFrame.this.slider.getValueIsAdjusting()) { // Update thedelay when the slider stops moving. final int speed = CircleFrame.this.slider.getValue(); if(CircleFrame.this.circlePanel.isSuspended() && speed > 0) { // Restart the circle resizing. synchronized(CircleFrame.this.circlePanel) { // Remove thread from wait() CircleFrame.this.circlePanel.notify(); } } else if(speed== 0) { // Attempt to call 'wait' directly on the runningobject. CircleFrame.this.circlePanel.wait(); } CircleFrame.this.circlePanel.setSpeed(speed); } ...TASK: In theSpawnViewclass, redefine thethreadPoolattribute as:private finalExecutorService threadPool = Executors.newFixedThreadPool(4);What happens when you spawn more than four circlewindows? What happens if you close any of the first four windows?

\f\f\f\f\f\f\f\f\f\f\f\f

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!