⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interactablecomponent.java

📁 moto手机专用的LWT类库源码
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   InteractableComponent.java

package com.motorola.lwt;

import javax.microedition.lcdui.*;

// Referenced classes of package com.motorola.lwt:
//            Component, ComponentListener

public abstract class InteractableComponent extends Component
{

    boolean pressed;
    String label;
    Font itsFont;
    int labelWidth;
    int labelHeight;
    boolean interactable;
    ComponentListener listener;

    public InteractableComponent(String s)
    {
        pressed = false;
        label = null;
        itsFont = Font.getDefaultFont();
        labelWidth = 0;
        labelHeight = 0;
        interactable = true;
        listener = null;
        setLabel(s);
        acceptsKeyFocus = true;
    }

    public boolean isPressed()
    {
        return pressed;
    }

    public void setPressed(boolean flag)
    {
        if(flag != pressed)
        {
            pressed = flag;
            repaint();
        }
    }

    public abstract void componentActuated();

    protected void pointerDragged(int i, int j)
    {
        if(interactable)
            setPressed(contains(i + getX(), j + getY()));
    }

    protected void pointerPressed(int i, int j)
    {
        if(interactable)
        {
            requestFocus();
            setPressed(true);
        }
    }

    protected void pointerReleased(int i, int j)
    {
        if(interactable && pressed)
        {
            componentActuated();
            setPressed(false);
        }
    }

    public void setComponentListener(ComponentListener componentlistener)
    {
        listener = componentlistener;
    }

    protected final void dispatchComponentEvent(int i)
    {
        if(listener != null)
            listener.processComponentEvent(this, i);
    }

    public abstract void paint(Graphics g);

    public void setLabel(String s)
    {
        setTextAndFont(s, itsFont);
    }

    private void setTextAndFont(String s, Font font)
    {
        label = s;
        itsFont = font;
        int i = s == null ? 0 : font.stringWidth(s);
        if(i != labelWidth)
        {
            labelWidth = i;
            preferredWidthChanged();
        }
        int j = s == null ? 0 : font.getHeight();
        if(j != labelHeight)
        {
            labelHeight = j;
            preferredHeightChanged();
        }
        repaint();
    }

    public String getLabel()
    {
        return label;
    }

    public synchronized void setFont(Font font)
    {
        setTextAndFont(label, font != null ? font : Font.getDefaultFont());
    }

    public synchronized Font getFont()
    {
        return itsFont;
    }

    protected boolean keyPressed(int i)
    {
        if(interactable && getParent().getGameAction(i) == 8)
        {
            setPressed(true);
            return true;
        } else
        {
            return false;
        }
    }

    protected boolean keyReleased(int i)
    {
        if(interactable && getParent().getGameAction(i) == 8)
        {
            componentActuated();
            setPressed(false);
            return true;
        } else
        {
            return false;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -