包含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圖像漸變如何顯示圖像

image=getImage(getCodeBase(),”a.gif”);

這一行描述圖片的,顯示圖片是a.gif

image=getImage(getCodeBase(),”F:\\新建文件夾\\圖片\\素材\\f.jpg”);

例如,要用絕對路徑

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

import javax.swing.JFrame ;

import javax.swing.JPanel ;

import java.awt.Color ;

public class ChangeColor extends JFrame implements Runnable {

private JPanel p ;

public static void main(String args[]) {

ChangeColor w = new ChangeColor();

w.setVisible(true) ;

}

public ChangeColor() {

//設置窗體屬性

this.setSize(300,300) ;

//new出組件

p = new JPanel() ;

//初始化組件屬性

//布置窗體

this.add(p) ;

//啟動線程

new Thread(this).start() ;

}

public void run() {

while(true) {

for (int r = 0; r256; r++)

for (int g = 0; g256; g++)

for (int b = 0; b256; b++) {

this.p.setBackground(new Color(r , g ,b)) ;

try { Thread.sleep(10) ; } catch (Exception ex) { }

this.repaint() ;

}

}

}

}

怎麼用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();

}

}

給你需要變色的元件掛個定時器。

原創文章,作者:WTU6B,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129484.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WTU6B的頭像WTU6B
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論