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

📄 swtsoftbutton.java

📁 手机模拟器源代码,可以在网页上调用applet应用来摸拟手机,在线体验手机游戏和运用.可以在网页上自定义手机外观.
💻 JAVA
字号:
/*
 *  MicroEmulator
 *  Copyright (C) 2001 Bartek Teodorczyk <barteo@it.pl>
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
package com.barteo.emulator.device.swt;

import java.util.Enumeration;
import java.util.Vector;

import javax.microedition.lcdui.Command;

import org.eclipse.swt.graphics.RGB;

import com.barteo.emulator.app.ui.swt.SwtGraphics;
import com.barteo.emulator.device.DeviceFactory;
import com.barteo.emulator.device.impl.Rectangle;
import com.barteo.emulator.device.impl.SoftButton;


public class SwtSoftButton extends SwtButton implements SoftButton
{

  public static int LEFT = 1;
  public static int RIGHT = 2;

  Vector commandTypes = new Vector();

  Command command = null;

  Rectangle paintable;
  int alignment;


  public SwtSoftButton(String name, Rectangle rectangle, String keyName, Rectangle paintable, String alignmentName, Vector commands)
  {
    super(name, rectangle, keyName, null);
      
    this.paintable = paintable;
    
    try {
      alignment = SwtSoftButton.class.getField(alignmentName).getInt(null);
    } catch (Exception ex) {
      System.err.println(ex);
    }
    
    for (Enumeration e = commands.elements(); e.hasMoreElements(); ) {
      String tmp = (String) e.nextElement();
      try {
        addCommandType(Command.class.getField(tmp).getInt(null));
      } catch (Exception ex) {
        System.err.println("a3" + ex);
      }
    }
  }


    /**
     *  Sets the command attribute of the SoftButton object
     *
     *@param  cmd  The new command value
     */
    public void setCommand(Command cmd) {
        command = cmd;
    }


    /**
     *  Gets the command attribute of the SoftButton object
     *
     *@return    The command value
     */
    public Command getCommand() {
        return command;
    }


    public void paint(SwtGraphics g) 
    {
        int xoffset = 0;

        SwtDeviceDisplay deviceDisplay =
            (SwtDeviceDisplay) DeviceFactory.getDevice().getDeviceDisplay();
		g.setBackground(g.getColor(new RGB(
				deviceDisplay.getBackgroundColor().getRed(), 
				deviceDisplay.getBackgroundColor().getGreen(), 
				deviceDisplay.getBackgroundColor().getBlue())));
        g.fillRectangle(paintable.x, paintable.y, paintable.width, paintable.height);
        if (command != null) {
            if (alignment == RIGHT) {
                xoffset = paintable.width - g.stringWidth(command.getLabel());
            }
    		g.setForeground(g.getColor(new RGB(
    				deviceDisplay.getForegroundColor().getRed(), 
					deviceDisplay.getForegroundColor().getGreen(), 
					deviceDisplay.getForegroundColor().getBlue())));
            g.drawString(command.getLabel(), 
            		paintable.x + xoffset, paintable.y + (paintable.height - g.getFontMetrics().getHeight()), true);
        }
    }


    public boolean preferredCommandType(Command cmd) {
        for (Enumeration ct = commandTypes.elements(); ct.hasMoreElements(); ) {
            if (cmd.getCommandType() == ((Integer) ct.nextElement()).intValue()) {
                return true;
            }
        }
        return false;
    }


    public void addCommandType(int commandType) {
        commandTypes.addElement(new Integer(commandType));
    }

}

⌨️ 快捷键说明

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