ListControl.java
上传用户:luxiaowei
上传日期:2022-06-06
资源大小:58k
文件大小:3k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package com.framework;
  6. import javax.microedition.lcdui.Graphics;
  7. /**
  8.  *
  9.  * @author santoshsalunke
  10.  */
  11. class ListControl extends ScrollableContainer {
  12.     GTantra font;
  13.     TextControl[] text;
  14.     String[] list;
  15.     private int selectedIndex = 0;
  16.     ComboBox parentcombo;
  17.     protected ListControl(ComboBox parentcombo,GTantra font, int width, int selectedIndex,String list[]) {
  18.         this.parentcombo = parentcombo;
  19.         this.list = list;
  20.         this.selectedIndex = selectedIndex;
  21.         text = new TextControl[this.list.length];
  22.         int _height = 0;
  23.          
  24.         for (int i = 0; i < this.list.length; i++) {
  25.             text[i] = new TextControl(this.list[i], width, font, GTantra.TEXT_HCENTER,false);
  26.             text[i].setPoistion(0, _height);
  27.             text[i].setHeight(font.getFontHeight() + 2);
  28.             text[i].setSelected(false);
  29.             _height += (text[i].getHeight());
  30.             addChildren(text[i]);
  31.         }
  32.         setTotalHeight(_height);
  33.         
  34.          if (height < totalHeight) {
  35.             setWidth(width);
  36.         }
  37.         setVisible(false);
  38.         selectChild(selectedIndex);
  39.         
  40.     }
  41.     public boolean keyPressed(int keycode) {
  42.         int gameKey = DisplayManager.getInst().getGameAction(keycode);
  43.         if (gameKey == DisplayManager.UP) {
  44.             selectedIndex--;
  45.             if (selectedIndex < 0) {
  46.                 selectedIndex = this.list.length - 1;
  47.             }
  48.             selectChild(selectedIndex);
  49.             return true;
  50.         } else if (gameKey == DisplayManager.DOWN) {
  51.             selectedIndex++;
  52.             if (selectedIndex >= this.list.length) {
  53.                 selectedIndex = 0;
  54.             }
  55.             selectChild(selectedIndex);
  56.             return true;
  57.         } else {
  58.             parentcombo.setText(getSelectedControl().getText());
  59.             setVisible(false);
  60.             DisplayManager.getInst().setListControl(null);
  61.             return true;
  62.         }
  63.     }
  64.     
  65.     public void setSelected(boolean selected) {
  66.         selectedChild = selectedIndex;
  67.         super.setSelected(selected);
  68.     }
  69.     public void setWidth(int width) {
  70.         super.setWidth(width);
  71.     }
  72.     
  73.     public void setHeight(int height) {
  74.         super.setHeight(height);
  75.         selectChild(selectedIndex);
  76.     }
  77.     public TextControl getSelectedControl() {
  78.         return (text[selectedChild]);
  79.     }
  80.     public void showNotify() {
  81.          selectChild(selectedIndex);
  82.     }
  83.     public boolean keyPressedEvent(int keycode) {
  84.         return false;
  85.     }
  86.     public void paintComponent(Graphics g) {
  87.       
  88.     }
  89. }