本人要做一个计算器,查了好久资料没有搞定,问题是:显示屏想做成LED效果,各个数字想用对应的图片显示,请问应该如何让它显示图片呢?显示屏控件用jTextField行不?显示完事如何知道是某个对应的数字?

解决方案 »

  1.   

    LED效果可以自己在JLbael上绘制。
    一个数字最多可分为7个多边形,你把这7个多边形的顶点定义出来,然后根据要输出的数字选择绘制不同的多边形即可。
    88888888888888888888888
     888888888888888888888
    8                     8
    88                   88
    88                   88
    88                   88
    88888888888888888888888
    88888888888888888888888
    88                   88
    88                   88
    8                     8
     888888888888888888888 
    88888888888888888888888
      

  2.   

    最简单的办法:
    就是设置jTextField的字体属性为液晶字体。不过,液晶字体需要从网上下载并安装,这里给出一个下载地址http://www.sj00.com/soft/937.htm。我建议的办法:
    1)在你的类根目录下建立一个resource包,放置你的数字图片,如:
      src
       --resource
         -- 0.gif
         -- 1.gif
         -- 2.gif
         -- 3.gif
         -- 4.gif
         -- 5.gif
         -- 6.gif
         -- 7.gif
         -- 8.gif
         -- 9.gif
         -- empty.gif
    2) 用JLabel显示图片:
       首先要获得图片,并将其转化为Icon:   Toolkit kit = Toolkit.getDefaultToolkit();
       Image numImg 
         = kit.getImage(Test.class.getResource("/numImg/"+ i +".png")); //i指一位数字
       Icon icon = new ImageIcon(numImg);
       myJLabel.setIcon(icon);   以上代码中有两个关键点:
         a. 使用Class类的getResource获得图片资源的URL
         b. 使用swing提供的工具类Toolkit读取指定URL的图片
       关于实施的建议,
         a. 创建一个Icon数组,用来存储数字图片,这样比较好访问,如:Icon[] numIcons = new Icon[10]; 
    Toolkit kit = Toolkit.getDefaultToolkit();
    for(int i=0;i<10;i++){
      Image numImg = kit.getImage(Test.class.getResource("/numImg/"+ i +".png"));
      Icon icon = new ImageIcon(numImg);
      numIcons[i] = icon;
    }    b.创建一个工具方法,用于把指定的数字显示在Icon上