下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件代码清单如下。 import javax.swing.*; import java.awt.*; import java.awt.event.*; /* <applet code='ex19_3.class' width=800 height=400> </applet> */ public class ex19_3 extends JApplet { private JTextField jtf=new JTextField(15); private JButton Hold=new JButton('Hold'); private JButton resume=new JButton('Resume'); private ex19_3th obj19_3th=new ex19_3th(); class ex19_3th extends Thread { private int cnt=0; private boolean bIsHold=false; public ex19_3th() {start();} public void hold() { bIsHold=true; } public synchronized void fauxResume() { bIsHold=false; wait (); } public void run() { while (true) { try { sleep(150); synchronized(this) { while(bIsHold) notify(); } }catch(InterruptedException ie) { System.err.println('Interrupted'); } jtf.setText(cnt); } } } public void init() { Container cp=getContentPane(); cp.setLayout(new FlowLayout()); cp.add(jtf); Hold.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { obj19_3th.hold ( ); } }); cp.add(Hold); resume.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { obj19_3th.fauxResume(); } &n