分类

图像捕捉

Java取色器

Java取色器 v1.1绿色无毒版

大小:96KB

语言:简体中文系统:

类别:图像捕捉时间:2014-02-17

应用介绍

Java取色器绿色无毒版,使用上稍微不太习惯,但总比到各个不靠谱的下载站下载个病毒的软件要好多了,鼠标点选要获取的地方,然后点击alt即可获取到颜色值。

Java取色器绿色无毒版

Java取色器开发背景:
自己的想法能用各种代码的组合实现出来,真的很有成就感啊,哈哈。
在你想要的颜色上面点下ALT键,就这么简单。
.exe文件使用exe4j做的,在我的机子上能用,没有别的机子进行测试,要是不能用,请通知我。
今天对前几天做的取色器进行了修改,去掉了一大堆重复的代码,添加了一个JLabel,可以对选中的颜色进行即时显示,防止点错,欢迎大家的使用。
经过了这么多天,我对面向对象还是不是很明白,写的代码的结构也不好,谁能帮我改一下啊,谢谢了。
更新日志:
v1.1
终于回到家了,对前几天做的取色器进行了修改,去掉了一大堆重复的代码,
添加了一个JLabel,可以对选中的颜色进行即时显示,防止点错,欢迎大家的使用。
经过了这么多天,对面向对象还是不是很明白,写的代码的结构也不好,谁能帮我改一下呢?

v1.0
经过这么多天的学习,这是我做出的第一个JAVA程序。自己的想法能用各种代码的组合实现出来,真的很有成就感啊,哈哈。
在你想要的颜色上面点下ALT键,就这么简单。
等有空了,我还想在这上面多加点功能,如果你有了好的想法,请告诉我一下。
谢谢。
代码如下:
Java code
/**Java取色器 v1.1
终于回到家了,对前几天做的取色器进行了修改,去掉了一大堆重复的代码,
添加了一个JLabel,可以对选中的颜色进行即时显示,防止点错,欢迎大家的使用。
**/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.MouseInfo.*;
import java.awt.datatransfer.*;
public class ColorTest extends JFrame implements ActionListener,KeyListener
{
    Robot robot;
    Point mousepoint;
    Integer R=0,G=0,B=0;
    Integer X=0,Y=0;
    Color pixel = new Color(0,0,0);
    String s16="";
    MouseInfo mouseinfo=null;
    JLabel JR,JG,JB,JX,JY,J16,JCol;
    JTextField JTFR,JTFG,JTFB,JTFX,JTFY,JTF16;
    JButton JCopy,JExit;
    JPanel pix=new JPanel(),zb=new JPanel(),pb=new JPanel();
    //主窗口上菜单的建造。
    public void setMenuBar()
    {
        JMenuBar myBar=new JMenuBar();
        JMenu helpMenu=new JMenu("帮助");
        JMenuItem help_About=new JMenuItem("关于");
        this.setJMenuBar(myBar);
        myBar.add(helpMenu);
        helpMenu.add(help_About);
        help_About.addActionListener(this);
    }
    //界面各种组件的初始化以及布局。
    public void ColorTest()
    {
        setTitle("DarkMao");       
        JR=new JLabel("R: ");
        JG=new JLabel("G: ");
        JB=new JLabel("B: ");
        JX=new JLabel("X: ");
        JY=new JLabel("Y: ");
        J16=new JLabel("十六进制表示:");
        JCol=new JLabel("■■■■■");
        JTFR=new JTextField(5);
        JTFG=new JTextField(5);
        JTFB=new JTextField(5);
        JTF16=new JTextField(6);
        JTFX=new JTextField(5);
        JTFY=new JTextField(5);
        JCopy=new JButton("复制");
        JExit=new JButton("退出");
        setFocusable(true);
        addKeyListener(this);
        JCopy.addActionListener(this);
        JExit.addActionListener(this);
        JCopy.addKeyListener(this);
        JExit.addKeyListener(this);
        JTFR.addKeyListener(this);
        JTFG.addKeyListener(this);
        JTFB.addKeyListener(this);
        JTF16.addKeyListener(this);
        JTFX.addKeyListener(this);
        JTFY.addKeyListener(this);
        pix.setLayout(new FlowLayout());
        zb.setLayout(new FlowLayout());
        pb.setLayout(new FlowLayout());
        pix.add(JR);
        pix.add(JTFR);
        pix.add(JG);
        pix.add(JTFG);
        pix.add(JB);
        pix.add(JTFB);
        zb.add(JX);
        zb.add(JTFX);
        zb.add(JY);
        zb.add(JTFY);
        pix.add(JCol);
        pix.add(J16);
        pix.add(JTF16);
        pb.add(JCopy);
        pb.add(JExit);
        setLayout(new BorderLayout());
        add(pix,BorderLayout.CENTER);
        add(zb,BorderLayout.NORTH);
        add(pb,BorderLayout.SOUTH);
    }
    //把当前选中的颜色的十六进制表示复制到系统的剪贴板中,方便使用。
    //输入的参数就是待放入剪贴板的数据。
    public static void setClipboard(String str)
    { 
      StringSelection ss = new StringSelection(str); 
      Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); 
  }
  //对按钮和菜单进行响应。
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==JCopy)
        { if(s16=="")
            {
                JOptionPane.showMessageDialog(null,"请在你想要的颜色上面按Alt键进行选取。","提示",JOptionPane.INFORMATION_MESSAGE);
            }
            else
            {
                setClipboard(s16);
                JOptionPane.showMessageDialog(null,"你所选取的16进制颜色代码 "+s16+" 已经复制到剪贴板中,请在你想用的地方按Ctrl+V粘贴。","提示",JOptionPane.INFORMATION_MESSAGE);
            }
        }
        else if(e.getSource()==JExit)
        {
            JOptionPane.showMessageDialog(null,"谢谢您的使用,这是我用java做的第一个小程序,如果你在使用过程用有了什么好玩的想法,一定要告诉我啊!","谢谢使用",JOptionPane.INFORMATION_MESSAGE);
            System.exit(0);
        }
        if(e.getActionCommand()=="关于")
            JOptionPane.showMessageDialog(this,"DarkMao 取色器 1.0\n和PS里的拾色器功能类似,但是使用方便,不用先截图再打开PS了,希望你能喜欢。\n想知道鼠标在的这一点的颜色吗?点下ALT键看看吧。\n如果你在使用过程中有了什么主意的话,请告诉我一下,谢谢。\nE-mail: 2whol@163.com","关于我",JOptionPane.INFORMATION_MESSAGE);
    }
    //当按键放开的时候才对案件进行响应,如果不想一下一下的点,
    //可以把里边的代码剪切到keyPressed()中,这样只要按下alt键同时移动鼠标就可以了。
    public void keyReleased(KeyEvent e)
    {
        //int code=e.getKeyCode();
        //System.out.println(code);
        if(e.getKeyCode()==18)
        {
            try{
            Robot robot = new Robot();
            mousepoint = mouseinfo.getPointerInfo().getLocation();
            //System.out.println(mousepoint);
          pixel = robot.getPixelColor(mousepoint.x,mousepoint.y);
          X = mousepoint.x;
          Y = mousepoint.y;
            R = pixel.getRed();
            G = pixel.getGreen();
            B = pixel.getBlue();
            JTFR.setText(R.toString());
            JTFG.setText(G.toString());
            JTFB.setText(B.toString());
            JTFX.setText(X.toString());
            JTFY.setText(Y.toString());
            //System.out.println(pixel);
            s16="#"+Integer.toHexString(R)+Integer.toHexString(G)+Integer.toHexString(B);//得到颜色的十六进制表示。
            JTF16.setText(s16);
            Color col=new Color(R,G,B);
            JCol.setForeground(col);//对当前选中的颜色进行显示。
            }catch(AWTException ex)
            {
                ex.printStackTrace();
            }           
        }       
    }
    public void keyTyped(KeyEvent e)
    {
    }
    public void keyPressed(KeyEvent e)
    {
    }
}
class CT
{
    public static void main(String[] args)
    {
            ColorTest ct = new ColorTest();
            ct.setMenuBar();
            ct.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            ct.setSize(300,200);
            ct.setLocation(200,200);
            ct.ColorTest();
            ct.setVisible(true);
    }
}

展开

猜您喜欢

同类推荐