導航:首頁 > 編程語言 > java漸變色

java漸變色

發布時間:2022-01-20 00:31:39

A. java代碼 實現兩種顏色漸變填充圖形,需要用戶選擇兩種顏色,如何在界面顯示這兩種顏色選擇器

JColorChooser

java提供了顏色選擇器.
例子
http://www.fengfly.com/plus/view-169016-1.html

B. 如何做一個java和程序,能實現顏色的漸變功能的

隨時間變化,還是繪圖工具的漸變?
awt包中有一個線性漸變的繪圖工具類,GradientPaint
隨時間變化只要設置一個Timer,定時改變組件顏色不就完了?

C. 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+
#include<gdiplus.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);
}

D. java 能不能做出jpaneld 漸變色像下面的圖片樣子的

夕卷大河陰。
窮人(一作久)業已寧。
逆虜遺之擒。

E. 怎麼用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();
}
}
給你需要變色的元件掛個定時器。

F. 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();
}

}

G. java中如何設置漸變的圖案

importjava.awt.*;
importjava.awt.geom.*;
importjavax.swing.*;
publicclassExample6_6extendsJFrame
{
publicExample6_6()
{
super("設置線條粗細");
setSize(300,180);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args)
{
newExample6_6();
}
publicvoidpaint(Graphicsg)
{
Graphics2Dg_2d=(Graphics2D)g;
GradientPaintgradient_1=newGradientPaint(0,10,Color.black,50,50,Color.yellow,false);
g_2d.setPaint(gradient_1);
Rectangle2Drect_1=newRectangle2D.Double(0,10,50,50);
g_2d.fill(rect_1);
GradientPaintgradient_2=newGradientPaint(60,60,Color.red,150,50,Color.white,true);
g_2d.setPaint(gradient_2);
Rectangle2Drect_2=newRectangle2D.Double(60,60,150,50);
g_2d.fill(rect_2);
}
}

H. java如何實現把一個圖片的漸變顯示出來

這個需要用flash。
用jQuery的$.show(time)可以實現緩慢載入的動畫效果。

I. java中怎樣實現漸變色進度條

代碼如下:
package test;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.plaf.basic.BasicProgressBarUI;

public class test extends JFrame {

int current = 0;

public static void main(String[] args) {
new test().setVisible(true);
}

public test() {

JPanel contentPane = new JPanel();

setContentPane(contentPane);
contentPane.setBounds(0, 0, 400, 400);

final JProgressBar pbMusic = new JProgressBar();
pbMusic.setBounds(16, 38, 332, 4);
pbMusic.setValue(current);
pbMusic.setMaximum(100);
pbMusic.setUI(new GradientProgressBarUI());
pbMusic.setBorderPainted(false);
new Timer().schele(new TimerTask() {

@Override
public void run() {
pbMusic.setValue(current++);
}
}, 0, 1000);
contentPane.add(pbMusic);

setLocation(400, 200);
setSize(400, 400);
setVisible(true);
}
public class GradientProgressBarUI extends BasicProgressBarUI {
@Override
protected void paintDeterminate(Graphics g, JComponent c) {
Graphics2D graphics2d = (Graphics2D) g;

Insets b = progressBar.getInsets();
// JProgressBar的邊界區域

int width = progressBar.getWidth();
int height = progressBar.getHeight();
int barRectWidth = width - (b.right + b.left);
int barRectHeight = height - (b.top + b.bottom);
int arcSize = height / 2 - 1;

int amountFull = getAmountFull(b, barRectWidth, barRectHeight);
//已完成的進度

graphics2d.setColor(Color.WHITE);
graphics2d.fillRoundRect(0, 0, width - 1, height, arcSize,
arcSize);
//繪制JProgressBar的背景

//用GradientPaint類來實現漸變色顯示進度
//設置了開始點和終止點,並設置好這兩個點的顏色,系統會自動在這兩個點中用漸變色來填充
Point2D start = new Point2D.Float(0, 0);
Point2D end = new Point2D.Float(amountFull - 1, barRectHeight - 1);
//這里設置的終止點是當前已經完成的進度的那個點

GradientPaint gradientPaint = new GradientPaint(
start, new Color(114,243,233), end, new Color(233,243,123));

graphics2d.setPaint(gradientPaint);

graphics2d.fillRoundRect(b.left, b.top, amountFull - 1,
barRectHeight, arcSize, arcSize);//這里實現的是圓角的效果將arcSize調成0即可實現矩形效果
}
}
}

J. 如何使用java設置LinearLayout背景為漸變色

至少有兩種方案可以實現:

第一是使用背景圖片,就是給Linearlayout添加一個background屬性,值選擇一張帶漸變顏色的圖片即可。

第二種方案是使用獨立的顏色代碼來替代上述一種的背景圖片,比如可以在res/drawable下新建一個mycolor.xml,然後再在LinearLayout添加屬性

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

<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns: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"/>
<cornersandroid:radius="4dp"/>
</shape>

解析:其中android:angle ="270.0"代表角度為270,由上到下的漸變,如果我改變成0那麼就變成了從左到右的漸變,如果改變90.0那麼漸變會從下邊往上漸變,可以 多改變一下參數試試效果。centerColor中間顏色; centerX: x軸漸變中心,從左到右漸變時有意義;centerY: 同理y軸的漸變中心;endColor 漸變終點顏色,同樣startColor為漸變起點顏色。

上述代碼效果如下:

閱讀全文

與java漸變色相關的資料

熱點內容
神經網路反向傳播演算法 瀏覽:301
神煞資料庫 瀏覽:847
三星2013系統最新版本 瀏覽:263
投屏電影 瀏覽:792
怎麼創建app平台 瀏覽:739
胡八一盜墓電影全部系列 瀏覽:635
百度雲文件庫更新 瀏覽:313
es文件管理卸載系統軟體 瀏覽:637
國語韓國電影 瀏覽:323
台灣古裝四級電影 瀏覽:403
頸子上長睾丸的電影 瀏覽:453
尺度大les影片 瀏覽:430
主角血親全收的小說 瀏覽:957
槍火粵語電影百度雲 瀏覽:42
周星馳的全部電影粵語 瀏覽:423
歐姆龍plc編程線驅動程序 瀏覽:46
重生紅軍反圍剿的小說 瀏覽:142
主角獲得外星戰艦認主 瀏覽:401
免費能搜索的在線看片 瀏覽:584
韓劇電影在線觀看國語 瀏覽:772

友情鏈接