「java颜色渐变」java渐变色代码

博主:adminadmin 2022-12-15 22:24:09 62

今天给各位分享java颜色渐变的知识,其中也会对java渐变色代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 在默认黑色背景下画出一个随即色彩的渐变圆

您好,现给你一个简单MFC对话框例子,工程名为TEXT:

(1)Text.h:

class CTextApp : public CWinApp

{

public:

CTextApp();

~CTextApp();

// 重写

public:

virtual BOOL InitInstance();

ULONG_PTR gdiplusToken;

// 实现

DECLARE_MESSAGE_MAP()

};

extern CTextApp theApp;

注:ULONG_PTR gdiplusToken; ~CTextApp(); 为新添加的东西

(2)Text.cpp里

CTextApp::~CTextApp()

{

//GDI+释放

GdiplusShutdown(gdiplusToken);

}

BOOL CTextApp::InitInstance()

{

// 如果一个运行在 Windows XP 上的应用程序清单指定要

// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,

//则需要 InitCommonControlsEx()。否则,将无法创建窗口。

INITCOMMONCONTROLSEX InitCtrls;

InitCtrls.dwSize = sizeof(InitCtrls);

// 将它设置为包括所有要在应用程序中使用的

// 公共控件类。

InitCtrls.dwICC = ICC_WIN95_CLASSES;

InitCommonControlsEx(InitCtrls);

CWinApp::InitInstance();

//GDI+初始化

GdiplusStartupInput StartupInput;

GdiplusStartup(gdiplusToken, StartupInput, NULL);

AfxEnableControlContainer();

// 创建 shell 管理器,以防对话框包含

// 任何 shell 树视图控件或 shell 列表视图控件。

CShellManager *pShellManager = new CShellManager;

// 标准初始化

// 如果未使用这些功能并希望减小

// 最终可执行文件的大小,则应移除下列

// 不需要的特定初始化例程

// 更改用于存储设置的注册表项

// TODO: 应适当修改该字符串,

// 例如修改为公司或组织名

SetRegistryKey(_T("应用程序向导生成的本地应用程序"));

CTextDlg dlg;

m_pMainWnd = dlg;

INT_PTR nResponse = dlg.DoModal();

if (nResponse == IDOK)

{

// TODO: 在此放置处理何时用

// “确定”来关闭对话框的代码

}

else if (nResponse == IDCANCEL)

{

// TODO: 在此放置处理何时用

// “取消”来关闭对话框的代码

}

// 删除上面创建的 shell 管理器。

if (pShellManager != NULL)

{

delete pShellManager;

}

// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,

// 而不是启动应用程序的消息泵。

return FALSE;

}

注:GdiplusStartupInput StartupInput; GdiplusStartup(gdiplusToken, StartupInput, NULL);为新添加的东西

(3)stdafx.h

//GDI+

#includegdiplus.h

using namespace Gdiplus;

#pragma comment(lib, "gdiplus.lib")

注:以上为为新添加的东西,需要的头文件就是上而这些

(4)接着你就可以使用LinearGradientBrush, 在TextDlg.cpp

void CTextDlg::OnPaint()

{

Graphics graphics(this-m_hWnd);

LinearGradientBrush linGrBrush(

Point(0,0),

Point(200,0),

Color(255,255,0,0),

Color(255,0,0,255));

graphics.FillRectangle(linGrBrush, 0, 0, 200, 200);

}

如何使用java设置LinearLayout背景为渐变色

至少有两种方案可以实现:

第一是使用背景图片,就是给Linearlayout添加一个background属性,值选择一张带渐变颜色的图片即可。

第二种方案是使用独立的颜色代码来替代上述一种的背景图片,比如可以在res/drawable下新建一个mycolor.xml,然后再在LinearLayout添加属性

android:background="@drawable/mycolor"即可

?xml version="1.0" encoding="utf-8"?

shape xmlns:android="

    gradient

        android:angle="270"

        android:centerColor="#00FFFF"

        android:centerX="0.5"

        android:centerY="0。3"

        android:endColor="#666666"

        android:startColor="#0099FF" /

    padding

        android:bottom="7dp"

        android:left="7dp"

        android:right="7dp"

        android:top="7dp" /

    corners android:radius="4dp" /

/shape

解析:其中android:angle ="270.0"代表角度为270,由上到下的渐变,如果我改变成0那么就变成了从左到右的渐变,如果改变90.0那么渐变会从下边往上渐变,可以 多改变一下参数试试效果。centerColor中间颜色; centerX: x轴渐变中心,从左到右渐变时有意义;centerY: 同理y轴的渐变中心;endColor 渐变终点颜色,同样startColor为渐变起点颜色。

上述代码效果如下:

java 中怎样设置窗口的颜色

调用需要设置颜色的控件的setBackgroud();方法就可以了。

但是设置JFrame和JLabel的背景色,一般就是下面的做法

JFrame frame = new JFrame();

frame.setBackground(Color.Red);

JLabel l = new JLabel();

l.setBackground(Color.Yellow);

frame.add(l);

结果根本就没有反应。这是由于Swing跟AWT有千丝万缕的联系,它既要支持AWT又要有自己新的体系,所以呢,这个如果对于AWT中的Frame是可以直接通过setBackground来设置背景色,但是对于JFrame则不可以,应该采用下面的方法:

JFrame frame = new JFrame();

frame.getContentPane().setBackground(Color.Red);

而对于JLabel来说则要设置JLabel为不透明的才行,即

JLabel comp = new JLabel(value);

comp.setBackground(color);

comp.setOpaque(true);

这句代码frame.setBackground(Color.Red);

改变的是框架的颜色,框架的上面还有窗格,所以你要改变窗格的颜色才可以侧低改变框架的颜色

在主函数里加Containerframe.getContentPane()意思是获得窗格

             setBackground(Color.Red);                       改变窗格颜色

另外再附一段背景颜色渐变的代码

运行示意图如下:

import java.awt.Color;

import java.awt.GradientPaint;

import java.awt.Graphics;

import java.awt.Graphics2D;

import javax.swing.JPanel;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

class ShadePanel extends JPanel {

   

    private static final long serialVersionUID = -2644424271663261406L;

   

    public ShadePanel() {

        super();

        setLayout(null);

    }

   

    @Override

    protected void paintComponent(Graphics g1) {// 重写绘制组件外观

        Graphics2D g = (Graphics2D) g1;

        super.paintComponent(g);// 执行超类方法

        int width = getWidth();// 获取组件大小

        int height = getHeight();

        // 创建填充模式对象

        GradientPaint paint = new GradientPaint(0, 0, Color.CYAN, 0, height,

                Color.MAGENTA);

        g.setPaint(paint);// 设置绘图对象的填充模式

        g.fillRect(0, 0, width, height);// 绘制矩形填充控件界面

    }

}

 

 

 

public class ShadeBackgroundImage extends JFrame {

   

   

    private static final long serialVersionUID = 4693799019369193520L;

    private JPanel contentPane;

   

   

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {

                    ShadeBackgroundImage frame = new ShadeBackgroundImage();

                    frame.setVisible(true);

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        });

    }

   

   

    public ShadeBackgroundImage() {

        setTitle("背景为渐变色的主界面");// 设置窗体标题

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setBounds(100, 100, 450, 300);

        contentPane = new JPanel();// 创建内容面板

        contentPane.setLayout(new BorderLayout(0, 0));

        setContentPane(contentPane);

        ShadePanel shadePanel = new ShadePanel();// 创建渐变背景面板

        contentPane.add(shadePanel, BorderLayout.CENTER);// 添加面板到窗体内容面板

    }

}

Java里面的GUI设计中怎么实现颜色的渐变(各个部分的RGB值不同)?

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.Color;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

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("确定");

jb.addActionListener(this);

jp.add(b1);

jp.add(t1);

jp.add(b2);

jp.add(t2);

jp.add(b3);

jp.add(t3);

jp.add(jb);

jp.setLayout(new FlowLayout());

add(jp,BorderLayout.CENTER);

setSize(200,200);

setResizable(false);

setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);

setVisible(true);

}

public void actionPerformed(ActionEvent e){

if(e.getSource().getClass().getSimpleName().equals("JButton")){

int r=Integer.parseInt(t1.getText());

int g=Integer.parseInt(t2.getText());

int b=Integer.parseInt(t3.getText());

if(r=0 r=255 g=0 g=255 b=0 b=255){

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

jp.setBackground(c);

}else{

System.out.println("请输入(0-255)的整数!");

}

}

}

public static void main(String[] args) {

new RGB();

}

}

Java 怎么样画调色板、或彩虹、或色谱

先定义要渐变的颜色,然后试试这个

Graphics2D g2 = (Graphics2D) g;

//绘制渐变

g2.setPaint(new GradientPaint(

0, 0, new Color(116, 149, 226),

getWidth(), getHeight(),

new Color(199, 212, 247)

));

g2.fillRect(0, 0, getWidth(), getHeight());

怎么用Java多线程实现面板颜色渐变;麻烦给你具体例子。

用定时器不行么?

顺便写了个,参考而已

import javax.swing.JFrame;

import javax.swing.JButton;

import javax.swing.Timer;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.awt.event.ActionListener;

public class TestA extends JFrame implements ActionListener {

//-----要实现ActionListener接口

public Timer t;

public JButton jb;

//-----一个定时器一个按钮用来显示变色效果

public int red = 0;

public int green = 0;

public int blue = 0;

public TestA() {

jb = new JButton("test");

jb.setBackground(Color.BLUE);

//-----定时器设置为0.2秒触发1次事件

t = new Timer(200, this);

this.setSize(200, 200);

this.getContentPane().add(jb);

this.setVisible(true);

//-----定时器开始运行

this.t.start();

}

public void actionPerformed(ActionEvent e) {

red += 5;

green += 10;

blue += 15;

red %= 255;

green %= 255;

blue %= 255;

//-----三种颜色按你所需搞个渐变的规则

this.jb.setBackground(new Color(red, green, blue));

this.jb.setVisible(true);

}

public static void main(String[] _s) {

TestA a = new TestA();

}

}

给你需要变色的元件挂个定时器。

java颜色渐变的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java渐变色代码、java颜色渐变的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。