请完成下列Java程序:生成一个窗口,包含一个长度为100的横向滚动条,实现对这个滚动条状态的监视,计算出滚动条的位置在整个长度的百分比,并通过画布将该值输出在滚动条上方的区域中。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入

admin2009-01-15  68

问题 请完成下列Java程序:生成一个窗口,包含一个长度为100的横向滚动条,实现对这个滚动条状态的监视,计算出滚动条的位置在整个长度的百分比,并通过画布将该值输出在滚动条上方的区域中。
   注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
   程序运行结果如下:
        
     import java.awt.*;
     import java.awt.event.*;
     public class ex19_2 extends Frame implements AdjustmentListener {
        private Scrollbar sb;
        private msgWnd mw;
        private int val;
        public static void main(String[]  arg)  {
           ex19_2 obj19_2=new ex19_2();
        }
        public ex19_2()  {
           setTitle("ex19_2");
           addWindowListener((WindowListener)new winListener());
           mw = new msgWnd();
           add("Center",mw);
           sb = new Scrollbar(Scrollbar. HORIZONTAL);
           sb.setVisibleAmount(10);
           sb.setBlockIncrement(6);
           sb.setUnitIncrement(5);
           sb.addAdjustmentListener(this);
           add("South",sb);
           pack();
           show();
      }
      public void adjustmentValueChanged(AdjustmentEvent ae)  {
           val = ae.getValue();
           _______________;
       }
       class msgWnd extends Canvas {
            msgWnd()  {
              setSize(450,20);
            }
            public void paint(Graphics g)  (
              g.drawString(" val=" +____________________+"%",10,15);
            }
      }
      class winListener extends WindowAdapter {
           public void windowClosing(WindowEvent we)  {
              System.exit(0);
           }
      }
   }  

选项

答案mw.repaint() val*100/sb.getMaximum()

解析 本题主要考查AWT基本构件滚动条的简单操作和事件处理。解题关键是熟悉ScrollBar构件的创建设置和相关事件的处理,会使用Scrollbar的基本方法如用getMaximum()得到滚动条的长度等。本题中,第1个空,调用mpaint()方法,由于这里是在画布中实现绘图操作,因此,应该使用画布的对象mw来调用此方法;第2个空,计算滚动条当前位置占整体长度的百分比,用到了getMaximum()方法,注意由于是求百分比,因此需要再乘100,否则结果为0。
转载请注明原文地址:https://kaotiyun.com/show/uIID777K
0

最新回复(0)