JAVA Graphics實現變色、漸變、陰影、傾斜、立體
Graphics實現變色、漸變、陰影、傾斜、立體幾種效果;瞭解了這幾種效果後便於實現點選驗證碼,為下一篇做準備。
package cn; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; /** * 會變色的文字 */ public class ChangeColorTextFrame extends JFrame { private ChangeColorTextPanel changeColorTextPanel = new ChangeColorTextPanel(); public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { ChangeColorTextFrame frame = new ChangeColorTextFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); ChangeColorTextFrame frame=new ChangeColorTextFrame(); frame.setVisible(true); } public ChangeColorTextFrame() { super(); setBounds(100, 100, 400, 205); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("會變色的文字"); getContentPane().add(changeColorTextPanel); Thread thread = new Thread(changeColorTextPanel);// 建立執行緒物件 thread.start();// 啟動執行緒物件 } class ChangeColorTextPanel extends JPanel implements Runnable { // 建立內部面板類 Color color = new Color(0, 0, 255); public void paint(Graphics g) { // 重寫paint()方法 Graphics2D g2 = (Graphics2D) g;// 轉換為Graphics2D型別 String value = "《視訊學Java程式設計》";// 繪製的文字 int x = 2; // 文字位置的橫座標 int y = 90; // 文字位置的縱座標 Font font = new Font("楷體", Font.BOLD, 40); // 建立字型物件 g2.setFont(font); // 設定字型 g2.setColor(color);// 設定顏色 g2.drawString(value, x, y); // 繪製文字 } public void run() { Random random = new Random();// 建立隨機數物件 while (true) { int R = random.nextInt(256);// 隨機產生顏色的R值 int G = random.nextInt(256);// 隨機產生顏色的G值 int B = random.nextInt(256);// 隨機產生顏色的B值 color = new Color(R, G, B);// 建立顏色物件 repaint();// 呼叫paint()方法 try { Thread.sleep(300);// 休眠300毫秒 } catch (InterruptedException e) { e.printStackTrace(); } } } } }
package cn; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; /** * 漸變效果的文字 */ public class GradientTextFrame extends JFrame { private GradientTextPanel gradientTextPanel = new GradientTextPanel(); public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { GradientTextFrame frame = new GradientTextFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public GradientTextFrame() { super(); setBounds(100, 100, 365, 205); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("漸變效果的文字"); getContentPane().add(gradientTextPanel); } class GradientTextPanel extends JPanel { // 建立內部面板類 public void paint(Graphics g) { // 重寫paint()方法 Graphics2D g2 = (Graphics2D) g;// 轉換為Graphics2D型別 String value = "Java全能";// 繪製的文字 int x = 15; // 文字位置的橫座標 int y = 60; // 文字位置的縱座標 Font font = new Font("楷體", Font.BOLD, 60); // 建立字型物件 g2.setFont(font); // 設定字型 // 建立迴圈漸變的GraphientPaint物件 GradientPaint paint = new GradientPaint(20, 20, Color.BLUE, 100,120, Color.RED, true); g2.setPaint(paint);// 設定漸變 g2.drawString(value, x, y); // 繪製文字 font = new Font("華文行楷", Font.BOLD, 60); // 建立新的字型物件 g2.setFont(font); // 設定字型 x = 80; // 文字位置的橫座標 y = 130; // 文字位置的縱座標 value = "程式設計詞典";// 繪製的文字 g2.drawString(value, x, y); // 繪製文字 } } }
package cn; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; /** * 陰影效果的文字 */ public class ShadowTextFrame extends JFrame { private ShadowTextPanel shadowTextPanel = new ShadowTextPanel(); public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { ShadowTextFrame frame = new ShadowTextFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public ShadowTextFrame() { super(); setBounds(100, 100, 354, 205); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("陰影效果的文字"); getContentPane().add(shadowTextPanel); } class ShadowTextPanel extends JPanel { // 建立內部面板類 public void paint(Graphics g) { // 重寫paint()方法 String value = "程式設計詞典"; int x = 16; // 文字位置的橫座標 int y = 100; // 文字位置的縱座標 Font font = new Font("華文行楷", Font.BOLD, 72); // 建立字型物件 g.setFont(font); // 設定字型 g.setColor(Color.GRAY);// 設定顏色為灰色 int i = 0;// 迴圈變數 g.drawString(value, x, y); // 繪製文字 x -= 3;// 調整繪製點的橫座標值 y -= 3;// 調整繪製點的縱座標值 g.setColor(Color.BLACK);// 設定顏色黑色 g.drawString(value, x, y); // 繪製文字 } } }
package cn;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 傾斜效果文字
*/
public class ShearTextFrame extends JFrame {
private ShearTextPanel shearTextPanel = new ShearTextPanel();
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ShearTextFrame frame = new ShearTextFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ShearTextFrame() {
super();
setBounds(100, 100, 365, 205);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("傾斜效果的文字");
getContentPane().add(shearTextPanel);
}
class ShearTextPanel extends JPanel { // 建立內部面板類
public void paint(Graphics g) { // 重寫paint()方法
Graphics2D g2 = (Graphics2D)g;// 轉換為Graphics2D型別
String value = "程式設計詞典";// 繪製的文字
int x = 10; // 文字位置的橫座標
int y = 170; // 文字位置的縱座標
Font font = new Font("華文行楷", Font.BOLD, 72); // 建立字型物件
g2.setFont(font); // 設定字型
g2.shear(0.1, -0.4);// 傾斜畫布
g2.drawString(value, x, y); // 繪製文字
}
}
}
package cn;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 立體效果文字
*/
public class SolidTextFrame extends JFrame {
private SolidTextPanel solidTextPanel = new SolidTextPanel();
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SolidTextFrame frame = new SolidTextFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public SolidTextFrame() {
super();
setBounds(100, 100, 354, 205);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("立體效果的文字");
getContentPane().add(solidTextPanel);
}
class SolidTextPanel extends JPanel { // 建立內部面板類
public void paint(Graphics g) { // 重寫paint()方法
String value = "明日科技";
int x = 16; // 文字位置的橫座標
int y = 100; // 文字位置的縱座標
Font font = new Font("宋體", Font.BOLD, 72); // 建立字型物件
g.setFont(font); // 設定字型
g.setColor(Color.GRAY);// 設定顏色為灰色
int i = 0;// 迴圈變數
while (i<8){
g.drawString(value, x, y); // 繪製文字
x+=1;// 調整繪製點的橫座標值
y+=1;// 調整繪製點的縱座標值
i++;// 調整迴圈變數的值
}
g.setColor(Color.BLACK);// 設定顏色黑色
g.drawString(value, x, y); // 繪製文字
}
}
}
打賞
如果覺得我的文章對你有幫助,有錢就捧個錢場,沒錢就捧個人場,歡迎點贊或轉發 ,並請註明原出處,謝謝....
相關推薦
JAVA Graphics實現變色、漸變、陰影、傾斜、立體
Graphics實現變色、漸變、陰影、傾斜、立體幾種效果;瞭解了這幾種效果後便於實現點選驗證碼,為下一篇做準備。package cn; import java.awt.Color; import java.awt.EventQueue; import java.awt.Fon
Java 如何實現執行緒間通訊?(notify、join、CountdownLatch、CyclicBarrier、FutureTask、Callable )
轉自:https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247486499&idx=1&sn=d3f2d6959df7299bfbe2d663f6c4d353&chksm=ebd6330fdca1ba1
css實現動態陰影、蝕刻文字、漸變文字
css實現動態陰影 建立與類似的陰影box-shadow 而是基於元素本身的顏色。 程式碼實現: <div class="dynamic-shadow-parent"> <div class="dynamic-shadow"><
使用Java實現數據庫編程—05 事務、視圖、索引、備份和恢復
lena 三層 lis 行修改 文件加載 工具 gin 並且 ron 1、事務(Transaction): 事務是將一系列數據操作綁成一個整體進行統一管理。 如果一事務執行成功,則咋子該事務中進行的所有數據更改均會提交,稱為數據庫中的永久成部分。 如果事務執行是遇到
Java常用的八種排序演算法與程式碼實現(二):歸併排序法、快速排序法
注:這裡給出的程式碼方案都是通過遞迴完成的 --- 歸併排序(Merge Sort): 分而治之,遞迴實現 如果需要排序一個數組,我們先把陣列從中間分成前後兩部分,然後對前後兩部分進行分別排序,再將排好序的數組合並在一起,這樣整個陣列就有序了 歸併排序是穩定的排序演算法,時間
演算法學習——中國大學MOOC-陳越、何欽銘-資料結構-起步能力自測題——java程式碼實現
自測-1 列印沙漏 (20 point(s)) 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大
Java實現FTP伺服器上傳、下載、下載多個寫入本地、刪除
場景:需要從FTP伺服器一個檔案目錄下down下來所有的檔案,上傳到專案某個目錄下。 上傳下載刪除獲取檔案下所有檔案,順便加上獲取到所有檔案進行下載。 package a1; /** * 1----public boolean uploadFile(String path ,Fi
用java來實現接收感測器裡面的溫溼度、各種氣體、大氣壓
之前主要依靠公司裡面一個同事用vb編的程式,因為我不知道crc校驗是怎麼出來的,為了趕專案用了vb,然後用java 呼叫資料庫裡面的資料;但是一個專案應該統一語言的; 我需要接受如下感測器資訊 感測器(-130米主通風井) 192.168.1
自定義元件開發五 陰影、 漸變和點陣圖運算
介紹陰影、漸變和點陣圖運算等技術 陰影只是一個狹義的說法,實際上也包括髮光等效果;Android 也提供了強大的漸變功能,漸變能為物體帶來更真實的質感,比如可以用漸變繪製一顆五子棋或一根金屬圓棒;點陣圖運算就更有趣了,Android 為 Bitmap 的運算提供了多達16 種運算方法,
java的知識點23——泛型Generics、Collection介面、List特點和常用方法、 ArrayList特點和底層實現
泛型Generics 一般通過“容器”來容納和管理資料。程式中的“容器”就是用來容納和管理資料。 陣列就是一種容器,可以在其中放置物件或基本型別資料。 陣列的優勢:是一種簡單的線性序列,可以快速地訪問陣列元素,效率高。如果從效率和型別檢查的角度講,陣列是最好的。 陣列的劣勢:不靈活。
用java程式設計實現集合的交、並、差和補運算
一、實驗目的 掌握集合的交、並、差和補運算,並且使用計算機程式設計實現。 二、實驗內容 通過程式設計實現求給定集合A和B的並集C(C=A∪B)、交集C(C=A∩B)、差集C(C=A-B)、補集~C=E-C的運算。 三、實驗要求 C、C++
java多執行緒系列(一):Thread、Runnable、Callable實現多執行緒的區別
實現多執行緒 java實現多執行緒的方法有三種,分別是繼承thread類,實現runnable介面,實現callable介面(call方法有返回值) /** * 繼承Thread */ public class MyThread extends Thread{ int a = 0;
非對稱加密的簽名和驗籤、加密和解密的Java語言實現
本文采用java.security包的簽名和驗籤。採用A的私鑰簽名傳送至B,B採用A的公鑰進行驗籤。 加解密可以私鑰加密、公鑰解密(或者公鑰加密、私鑰解密)。 一般用於銀行報文傳輸、支付寶、微信、銀行以及各大銀行的資料交換。 package com.example.demo; impo
如何實現視窗陰影效果 (SysShadow、分層視窗、DWM)
方法一、系統屬性: 為了實現陰影效果,這兩天google了不少,終於從 SysShadow 中找到了一點線索。 給視窗新增陰影: SetClassLong(this->m_hWnd, G
【資料結構與演算法】之單鏈表、雙鏈表、迴圈連結串列的基本介紹及其Java程式碼實現---第三篇
一、連結串列的基本介紹 連結串列的定義:連結串列是一種遞迴的資料結構,它或者為空(null),或者是指向一個結點(node)的引用,該結點含有一個泛型的元素和一個指向另一條連結串列的引用。----Algorithms Fourth Edition 常見的連結串
java的知識點12——==和equals方法、 super關鍵字、 繼承樹追溯、封裝的作用和含義、封裝的實現—使用訪問控制符、封裝的使用細節
==和equals方法 “==”代表比較雙方是否相同。如果是基本型別則表示值相等,如果是引用型別則表示地址相等即是同一個物件。 Object 的 equals 方法預設就是比較兩個物件的hashcode,是同一個物件的引用時返回 true 否則返回 false。但是,我
Java常用的八種排序演算法與程式碼實現(一):氣泡排序法、插入排序法、選擇排序法
這三種排序演算法適合小規模資料排序 --- 共同點:基於比較,時間複雜度均為O(n2),空間複雜度均為O(1)(原地排序演算法) 不同點:插入排序和氣泡排序是穩定的排序演算法,選擇排序不是 --- 穩定排序演算法:可以保持數值相等的兩個物件,在排序之
Java多執行緒的實現(程序與執行緒的概念、Java繼承Thread類實現多執行緒、Java實現Runnable介面實現多執行緒、Thread與Runnable的區別、實現Callable介面實現多執行緒)
1 程序與執行緒 1.1 程序與執行緒的概念 什麼是程序? 程序: 作業系統中一個程式的執行週期。(比如我們想要在電腦上登入QQ,從雙擊qq按鈕---->關閉qq這個過程就是一個程序) 多程序: 同一時刻跑多個程式。 在DOS(磁碟作業系統時
二叉搜尋樹的插入、刪除、查詢等操作:Java語言實現
1 二叉搜尋樹介紹 二叉搜尋樹(BST, Binary Search Tree),也稱二叉排序樹或二叉查詢樹。二叉搜尋樹:一棵二叉樹,可以為空;如果不為空,滿足以下性質:1. 非空左子樹的所有鍵值小於其根結點的鍵值。2. 非空右子樹的所有鍵值大於其根結點的鍵值。3. 左、右子
mongodb多表查詢、外來鍵關聯,命令+java方式實現
首先,我們回憶一下,MySQL多表關聯查詢的語句: student表: CALSS表: 通過student的classId關聯進行查詢學生名稱,班級的資料: SELECT student.name,student.age,class.name FROM stud