Java 文字從下向上滾動特效實現
阿新 • • 發佈:2018-12-29
package com.image import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.net.URL; import javax.swing.JFrame; import javax.swing.JPanel; public class CaptionSpecificFrame extends JFrame { private Image img = null; // 宣告影象物件 private CaptionSpecificPanel captionSpecificPanel = null; // 宣告影象面板物件 public static void main(String args[]) { CaptionSpecificFrame frame = new CaptionSpecificFrame(); frame.setVisible(true); } public CaptionSpecificFrame() { super(); URL imgUrl = CaptionSpecificFrame.class.getResource("/img/image.jpg");// 獲取圖片資源的路徑 img = Toolkit.getDefaultToolkit().getImage(imgUrl); // 獲取影象資源 captionSpecificPanel = new CaptionSpecificPanel(); // 建立影象面板物件 this.setBounds(200, 160, 316, 237); // 設定窗體大小和位置 this.add(captionSpecificPanel); // 在窗體上新增影象面板物件 Thread thread = new Thread(captionSpecificPanel);// 建立執行緒物件 thread.start();// 啟動執行緒物件 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設定窗體關閉模式 this.setTitle("字幕從下向上滾動特效"); // 設定窗體標題 } // 建立面板類 class CaptionSpecificPanel extends JPanel implements Runnable { int x = 30;// 儲存繪製點的x座標 int y = 216;// 儲存繪製點的y座標 String value = "我愛Java";// 儲存繪製的內容 public void paint(Graphics g) { g.clearRect(0, 0, 316, 237);// 清除繪圖上下文的內容 g.drawImage(img, 0, 0, getWidth(), getHeight(), this);// 繪製圖像 Font font = new Font("黑體", Font.BOLD, 20);// 建立字型物件 g.setFont(font);// 指定字型 g.setColor(Color.RED);// 指定顏色 g.drawString(value, x, y);// 繪製文字 } public void run() { try { while (true) { // 讀取內容 Thread.sleep(100); // 當前執行緒休眠1秒 if (y <= 216 - 50) {// 如果已經向上移動50畫素 y = 216;// y座標定位到最下方 if (value.equals("我愛Java")) { value = "今天又是努力學習的一天";// 改變繪製的內容 } else { value = "我愛Java";// 改變繪製的內容 } } else {// 如果還沒向上移動到50畫素 y -= 2;// y座標上移 } repaint();// 呼叫paint()方法 } } catch (Exception e) { e.printStackTrace(); } } } }