日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Java RGB值碼自動機類的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我的代碼在這里:

package RGBValues;

import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;

public class RGBValues {

    public static void main(String[] args) throws Exception {
        PointerInfo pointer;
        pointer = MouseInfo.getPointerInfo();
        Point coord = pointer.getLocation();

        Robot robot = new Robot();
        robot.delay(2000);

        while(true) {
            coord = MouseInfo.getPointerInfo().getLocation()…
            Color color = robot.getPixelColor((int)coord.getX(), (int)coord.getY());
            if( color.getGreen() == 255 &&
                color.getBlue() == 255 &&
                color.getRed() == 255
            ) {
                System.out.println("WHITE");
            }
            robot.delay(1000);
        }
    }
}

我被困在如何讓鼠標指向屏幕上的任何位置時,它都會在指針下面顯示該像素的RGB值。有沒有人能幫忙,知道該怎么做?我對Java非常陌生,所以我不知道如何解決這個問題。

推薦答案

除了可能讓線程運行得有點瘋狂之外,我看不出您的代碼不能工作的任何原因…

import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class WhatsMyColor {

    public static void main(String[] args) {
        new WhatsMyColor();
    }

    public WhatsMyColor() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            Thread thread = new Thread(new BackgroundMonitor());
            thread.setDaemon(true);
            thread.start();
        }

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(200, 200);
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g); 
            Color color = getBackground();
            String text = color.getRed() + "x" + color.getGreen() + "x" + color.getBlue();
            FontMetrics fm = g.getFontMetrics();
            int x = (getWidth() - fm.stringWidth(text)) / 2;
            int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();
            g.drawString(text, x, y);
        }

        public class BackgroundMonitor implements Runnable {

            @Override
            public void run() {
                try {
                    Robot robot = new Robot();

                    Color previous = null;
                    while (true) {
                        Point coord = MouseInfo.getPointerInfo().getLocation();
                        Color color = robot.getPixelColor((int) coord.getX(), (int) coord.getY());
                        if (previous == null || !previous.equals(color)) {
                            SwingUtilities.invokeLater(new UpdateBackgroud(color));
                        }
                        try {
                            Thread.sleep(250);
                        } catch (InterruptedException ex) {
                        }
                    }
                } catch (AWTException | HeadlessException exp) {
                    exp.printStackTrace();
                }
            }
        }

        public class UpdateBackgroud implements Runnable {

            private Color color;

            public UpdateBackgroud(Color color) {
                this.color = color;
            }

            @Override
            public void run() {
                setBackground(color);
            }

        }
    }
}

這篇關于Java RGB值碼自動機類的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Java RGB 自動機
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定