想做个颜色捕捉器,怎么得到本地的图片位置以及像素点,主要就是怎么触发本地鼠标事件,应该用到JNI,但是不知道怎么使用?JNI

解决方案 »

  1.   

    像window的画图程序一样?显示鼠标位置的RGB值?jni用不着。找top left不行吗?
      

  2.   

    要不是JNI,还真不清楚你说的是本地还是web?Container container = getContentPane(); 
            container.addMouseListener(new MouseListener() { 
     
                @Override 
                public void mouseClicked(MouseEvent e) { 
                    // TODO Auto-generated method stub  
                    System.out.print("单击了鼠标按键,"); 
                   
                } 
            }
      

  3.   


    我的意思是取得JFrame以外的本地的RGB值 或者是鼠标事件!  就比如我启动一个JFrame  点击上面的获取RGB值
    然后把鼠标移动在JFrame以外 来获取  不是JFrame上面的
      

  4.   

    不是JFrame上面的  是取得它之外的本地其他对象的值
      

  5.   

    这种还是应该用vc写比较方便,用纯java肯定做不了,java肯定只有用jni了。
      

  6.   

    全屏取色代码public class Test2 extends JFrame implements Runnable 

        private Robot robot; 
        private Color color = new Color(0, 0, 0); 
        private Point point; 
        private JPanel pane = new JPanel(); 
        private JLabel label = new JLabel(); 
         
        public Test2(String title) 
        { 
            super(title); 
             
            label.setHorizontalAlignment(JLabel.CENTER); 
            getContentPane().add(pane, "Center"); 
            getContentPane().add(label, "South"); 
            //getContentPane().addMouseMotionListener(new PickColorMouesMotionListener()); 
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            setSize(200,200); 
            display(); 
            new Thread(this).start(); 
        } 
        public static void main(String[] args) 
        { 
            Test2 pc = new Test2("PickColor"); 
        } 
         
        public void display() 
        { 
            Toolkit toolkit = Toolkit.getDefaultToolkit(); 
            Dimension dim = toolkit.getScreenSize(); 
            setLocation 
            ( 
                (dim.width - getWidth()) / 2, 
                (dim.height - getHeight()) / 2 
            ); 
            setVisible(true); 
        } 
         
        // 对整个屏幕进行取色 
        public void run() 
        { 
            while(true) 
            { 
                try 
                { 
                    robot = new Robot(); 
                    point = MouseInfo.getPointerInfo().getLocation(); 
                    color = robot.getPixelColor(point.x, point.y); 
                    pane.setBackground(color); 
                    label.setText("RGB(" + color.getRed() + ", " + color.getGreen() + ", " + color.getBlue() + ")"); 
                    Thread.sleep(10); 
                } 
                catch(Exception e) 
                { 
                    e.printStackTrace(); 
                } 
            } 
        }