鼠标下的rgb值

时间:2013-11-03 21:57:01

标签: java rgb

当我将鼠标悬停在屏幕上并让Jframe显示颜色本身时,如何让我的程序读取鼠标下的rgb值。 rgb值。可能还有颜色的名称

因此我的标题显示我需要一个像素颜色检测器

这是我到目前为止打开jframe但没有其他任何内容

package project;

import java.awt.AWTException;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import javax.swing.JFrame;


public class Project {
    private static int EXIT_ON_CLOSE;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws AWTException {

//timer = new Timer(1000,this); 
JFrame frame= new JFrame();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
//JLabel lable = new JLabel(); 
//JScrollPane jsp = new JScrollPane(lable);
//frame.getContentPane().add(jsp); 
frame. setSize(1000, 700);
frame.setVisible(true);

while(true) {


       PointerInfo cursorLocation = MouseInfo.getPointerInfo();
        Point position = cursorLocation.getLocation(); 
        int x = (int)position.getX(); 
        int y = (int)position.getY();

Robot bob = new Robot();

Color pixelColor = bob.getPixelColor(x, y);
int colorRed = pixelColor.getRed(); 
int colorGreen = pixelColor.getGreen(); 
int colorBlue = pixelColor.getBlue();
//System.out.print("Red " + colorRed + " Green " + colorGreen + " Blue " + colorBlue + "\n" );

 frame.setName("Red " + colorRed + " Green " + colorGreen + " Blue " + colorBlue );
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用while(true)绝不是一个好主意。在那里你应该有一个Thread.sleep(...)。我肯定会查看MadProgrammer的解决方案。

无论如何,您发布的代码的问题是:

frame.setName("...");

你想:

frame.setTitle("...");