请问各位高手,在java中,如何实现输入RGB值改变颜色

请问各位高手,在java中,如何实现输入RGB值改变颜色,第1张

import javaawtBorderLayout;

import javaawtFlowLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaawtColor;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJPanel;

import javaxswingJTextField;

public class RGB extends JFrame implements ActionListener{

JTextField t1,t2,t3;

JLabel b1,b2,b3;

JButton jb;

JPanel jp;

    public RGB(){

       super("RGB");

       jp=new JPanel();

       b1=new JLabel("R");

       b2=new JLabel("G");

       b3=new JLabel("B");

       t1=new JTextField(3);

       t2=new JTextField(3);

       t3=new JTextField(3);

       jb=new JButton("确定");

       jbaddActionListener(this);

       jpadd(b1);

       jpadd(t1);

       jpadd(b2);

       jpadd(t2);

       jpadd(b3);

       jpadd(t3);

       jpadd(jb);

       jpsetLayout(new FlowLayout());

       

       add(jp,BorderLayoutCENTER);

       setSize(200,200);

       

       setResizable(false);

  setDefaultCloseOperation(thisDISPOSE_ON_CLOSE);

  setVisible(true);

    }

       public void actionPerformed(ActionEvent e){

   if(egetSource()getClass()getSimpleName()equals("JButton")){

   int r=IntegerparseInt(t1getText());

   int g=IntegerparseInt(t2getText());

   int b=IntegerparseInt(t3getText());

   if(r>=0 && r<=255 && g>=0 && g<=255 && b>=0 && b<=255){

   Color c=new Color(r,g,b);

   jpsetBackground(c);

   }else{

   Systemoutprintln("请输入(0-255)的整数!");

   }

   }

}

 

public static void main(String[] args) {

new RGB();

}

}

rgb三个参数的值为0-255,对应就是00-FF(这个是16进制的),所以可以直接从#FFFFFF得到rgb的值为:int r = 0xff ; int g = 0xff ; int b = 0xff ;(0x<零x>表示16进制晓得的吧)

BufferedImage 对象有个 getRGB(int x, int y) 方法

作用就是取得对应图像 x 与 y 坐标的像素点 rgb 值

如果只是比较的话,直接拿这个对象的 getRGB 与另一个对象的 getRGB 比较就可以了

如果需要取得具体的 rgb 值则需要一些位运算 *** 作

可以看看这篇回答

网页链接

java中获取Panel上某个像素点的像素颜色,代码如下:

public static void main(String[] args) {

//创建一个150150,RGB高彩图,类型可自定

BufferedImage img=new BufferedImage(150, 150, BufferedImageTYPE_INT_rgb);

//取得图形

Graphics g=imggetGraphics();

//设置黑色(black)

gsetColor(ColorBLACK);

//填充颜色

gfillRect(0, 0, imggetWidth(), imggetHeight());

//在D盘创建个一个png格式

File file=new File("D:/zhidaopng");

try{

        //以png方式写入,可改成jpg、gif等其它后缀

ImageIOwrite(img, "PNG", file);

    }catch (IOException e){

eprintStackTrace();

}

//D盘上就生成了一个zhidaopng的黑色

}

         

      

给你贴出代码来示意使用swing中现成的调色板

import javaxswing;

import javaawt;

import javaawtevent;

/

  @author Hardneedl

 /

final class ColorChooserDemo extends JFrame {

    public String getTitle() {return "ColorChooserDemo";}

    static private final Dimension size = new Dimension(600,400);

    public Dimension getPreferredSize() {return size;}

    public Dimension getMaximumSize() {return size;}

    public Dimension getMinimumSize() {return size;}

    public Dimension getSize(){return size;}

    private JButton button;

    private class ColorAction extends AbstractAction{

        private JColorChooser chooser;

        private ColorAction() {super("select color");}

        public void actionPerformed(ActionEvent e) {

            Component cmp=(Component)egetSource();

            if(chooser==null){

                chooser=new JColorChooser( cmpgetBackground() );

            }

            cmpsetBackground( JColorChoosershowDialog(cmp,"select color",cmpgetBackground()) );

        }

    }

    ColorChooserDemo() throws HeadlessException {

        init();

        attachListeners();

        doLay();

    }

    private void init(){

        button=new JButton(new ColorAction());

    }

    private void attachListeners(){

        setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

    }

    private void doLay(){

        final Container container = getContentPane();

        containeradd(button,BorderLayoutNORTH);

        pack();

        setVisible(true);

    }

    public static void main(Stringargs) {

        SystemsetProperty("swingdefaultlaf","comsunjavaswingplafwindowsWindowsLookAndFeel");

        SwingUtilitiesinvokeLater(

            new Runnable(){

                public void run() {

                    new ColorChooserDemo();

                }

            }

        );

    }

}

以上就是关于请问各位高手,在java中,如何实现输入RGB值改变颜色全部的内容,包括:请问各位高手,在java中,如何实现输入RGB值改变颜色、java 从#FFFFFF 得到颜色、Java问题,对图像进行 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9318663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存