友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

Java编程思想第4版[中文版](PDF格式)-第192章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




// should be to install listeners。 The code is  

// much safer; more modular and maintainable。  

import java。awt。*;  

import java。awt。event。*;  

  

class Display {  

  public static final int  

    EVENT = 0; PONENT = 1;  

    MOUSE = 2; MOUSE_MOVE = 3;  

    FOCUS = 4; KEY = 5; ACTION = 6;  

    LAST = 7;  

  public String'' evnt;  



                                                                                          438 


…………………………………………………………Page 440……………………………………………………………

  Display() {  

    evnt = new String'LAST';  

    for(int i = 0; i 《 LAST; i++)  

      evnt'i' = new String();  

  }  

  public void show(Graphics g) {  

    for(int i = 0; i 《 LAST; i++)  

      g。drawString(evnt'i'; 0; 10 * i + 10);  

  }  

}  

  

class EnabledPanel extends Panel {  

  Color c;  

  int id;  

  Display display = new Display();  

  public EnabledPanel(int i; Color mc) {  

    id = i;  

    c = mc;  

    setLayout(new BorderLayout());  

    add(new MyButton(); BorderLayout。SOUTH);  

    addponentListener(new CL());  

    addFocusListener(new FL());  

    addKeyListener(new KL());  

    addMouseListener(new ML());  

    addMouseMotionListener(new MML());  

  }  

  // To eliminate flicker:  

  public void update(Graphics g) {  

    paint(g);  

  }  

  public void paint(Graphics  g) {  

    g。setColor(c);  

    Dimension s = getSize();  

    g。fillRect(0; 0; s。width; s。height);  

    g。setColor(Color。black);  

    display。show(g);  

  }  

  // Don't need to enable anything for this:  

  public void processEvent(AWTEvent e) {  

    display。evnt'Display。EVENT'= e。toString();  

    repaint();  

    super。processEvent(e);  

  }  

  class CL implements ponentListener {  

    public void ponentMoved(ponentEvent e){  

      display。evnt'Display。PONENT' =   

        〃ponent moved〃;  

      repaint();  

    }  

    public void   

    ponentResized(ponentEvent e) {  

      display。evnt'Display。PONENT' =   



                                                                                             439 


…………………………………………………………Page 441……………………………………………………………

        〃ponent resized〃;  

      repaint();  

    }  

    public void   

    ponentHidden(ponentEvent e) {  

      display。evnt'Display。PONENT' =   

        〃ponent hidden〃;  

      repaint();  

    }  

    public void ponentShown(ponentEvent e){  

      display。evnt'Display。PONENT' =   

        〃ponent shown〃;  

      repaint();  

    }  

  }  

  class FL implements FocusListener {  

    public void focusGained(FocusEvent e) {  

      display。evnt'Display。FOCUS' =   

        〃FOCUS gained〃;  

      repaint();  

    }  

    public void focusLost(FocusEvent e) {  

      display。evnt'Display。FOCUS' =   

        〃FOCUS lost〃;  

      repaint();  

    }  

  }  

  class KL implements KeyListener {  

    public void keyPressed(KeyEvent e) {  

      display。evnt'Display。KEY' =   

        〃KEY pressed: 〃;   

      showCode(e);  

    }  

    public void keyReleased (KeyEvent e) {  

      display。evnt'Display。KEY' =   

        〃KEY released: 〃;   

      showCode(e);  

    }  

    public void keyTyped(KeyEvent e) {  

      display。evnt'Display。KEY' =   

        〃KEY typed: 〃;  

      showCode(e);  

    }  

    void showCode(KeyEvent e) {  

      int code = e。getKeyCode();  

      display。evnt'Display。KEY' +=   

        KeyEvent。getKeyText(code);  

      repaint();  

    }  

  }  

  class ML implements MouseListener {  

    public void mouseClicked(MouseEvent e) {  



                                                                                        440 


…………………………………………………………Page 442……………………………………………………………

      requestFocus(); // Get FOCUS on click  

      display。evnt'Display。MOUSE' =   

        〃MOUSE clicked〃;  

      showMouse(e);  

    }  

    public void mousePressed(MouseEvent e) {  

      display。evnt'Display。MOUSE' =   

        〃MOUSE pressed〃;  

      showMouse(e);  

    }  

    public void mouseReleased(MouseEvent e) {  

      display。evnt'Display。MOUSE' =   

        〃MOUSE released〃;  

      showMouse(e);  

    }  

    public void mouseEntered(MouseEvent e) {   

      display。evnt'Display。MOUSE' =   

        〃MOUSE entered〃;  

      showMouse(e);  

    }  

    public void mouseExited(MouseEvent e) {   

      display。evnt'Display。MOUSE' =   

        〃MOUSE exited〃;  

      showMouse(e);  

    }  

    void showMouse(MouseEvent e) {  

      display。evnt'Display。MOUSE' +=   

        〃; x = 〃 + e。getX() +   

        〃; y = 〃 + e。getY();  

      repaint();  

    }  

  }  

  class MML implements MouseMotionListener {  

    public void mouseDragged(MouseEvent e) {  

      display。evnt'Display。MOUSE_MOVE' =   

        〃MOUSE dragged〃;  

      showMouse(e);  

    }  

    public void mouseMoved(MouseEvent e) {  

      display。evnt'Display。MOUSE_MOVE' =   

        〃MOUSE moved〃;  

      showMouse(e);  

    }  

    void showMouse(MouseEvent e) {  

      display。evnt'Display。MOUSE_MOVE' +=   

        〃; x = 〃 + e。getX() +   

        〃; y = 〃 + e。getY();  

      repaint();  

    }  

  }  

}  

  



                                                                                             441 


…………………………………………………………Page 443……………………………………………………………

class MyButton extends Button {  

  int clickCounter;  

  String label = 〃〃;  

  public MyButton() {  

    addActionListener(new AL());  

  }  

  public void paint(Graphics g) {  

    g。setColor(Color。green);  

    Dimension s = getSize();  

    g。fillRect(0; 0; s。width; s。height);  

    g。setColor(Color。black);  

    g。drawRect(0; 0; s。width 1; s。height 1);  

    drawLabel(g);  

  }  

  private void drawLabel(Graphics g) {  

    FontMetrics fm = g。getFontMetrics();  

    i
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!