首页 游戏 软件 排行 专题
Java取色器
  • Java取色器1.1绿色无毒版

  • 大小:95KB更新:2014-02-16 09:43
  • 类别:抓图工具系统:WinXP

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

效果图如下:

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);

    }

}


玩家留言 跟帖评论
查看更多评论
相关应用
猜你喜欢

开发者其他应用

同类下载
其它版本