海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          最近在給客戶做項目的時候客戶提出要求要給圖片加水印, 在添加文字水印時,讓用戶自定義自體,當(dāng)用戶在選擇字體時,如果勾選了刪除線和下劃線選項,而java.awt.Font不支持下劃線和刪除線的style, 這怎么辦呢?

          字體設(shè)置

          還好,Java提供了 AttributedString 類, 通過

          attributedString.addAttribute(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON);

          attributedString.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);

          即可給文字添加刪除線和下劃線,再通過

          graphics2D.drawString(as.getIterator(), x, y);

          就可以顯示下劃線和刪除線的效果了。

          刪除線下劃線效果

          Java代碼
          1. import java.awt.Font;  
          2. import java.awt.Graphics;  
          3. import java.awt.Graphics2D;  
          4. import java.awt.RenderingHints;  
          5. import java.awt.font.TextAttribute;  
          6. import java.text.AttributedString;  
          7.   
          8. import javax.swing.JFrame;  
          9. import javax.swing.JPanel;  
          10.   
          11. public class IteratorUnderStrike extends JPanel{  
          12.   public void paint(Graphics g) {  
          13.     Graphics2D g2 = (Graphics2D) g;  
          14.   
          15.     String s = "/"www.java2s.com/" is great.";  
          16.   
          17.     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,  
          18.         RenderingHints.VALUE_ANTIALIAS_ON);  
          19.     Font plainFont = new Font("Times New Roman", Font.PLAIN, 24);  
          20.   
          21.     AttributedString as = new AttributedString(s);  
          22.     as.addAttribute(TextAttribute.FONT, plainFont);  
          23.     as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, 1, 15);  
          24.     as.addAttribute(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, 18, 25);  
          25.   
          26.     g2.drawString(as.getIterator(), 24, 70);  
          27.   }  
          28.   
          29.   public static void main(String[] args) {  
          30.     JFrame f = new JFrame();  
          31.     f.getContentPane().add(new IteratorUnderStrike());  
          32.     f.setSize(850, 250);  
          33.     f.show();  
          34.   }  



          http://yanghuidang.iteye.com/blog/1203582

          評論

          # re: 【轉(zhuǎn)】java AWT 給 Font 添加刪除線和下劃線(2D繪圖)  回復(fù)  更多評論   

          2016-03-04 13:37 by
          輔導(dǎo)輔導(dǎo)

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沙雅县| 石柱| 富裕县| 张北县| 米林县| 新昌县| 喀什市| 乌兰浩特市| 芒康县| 黎川县| 新源县| 兴国县| 莒南县| 和政县| 兴义市| 正宁县| 视频| 枣强县| 宁都县| 虞城县| 新邵县| 华坪县| 仁寿县| 青川县| 金塔县| 定日县| 石家庄市| 休宁县| 延津县| 淮安市| 阿克苏市| 叙永县| 安福县| 甘德县| 满城县| 南城县| 威远县| 子长县| 兴隆县| 陈巴尔虎旗| 广州市|