導航:首頁 > 編程語言 > java畫漢字

java畫漢字

發布時間:2023-01-23 10:03:16

㈠ 如何實現java畫圖程序,並可在已畫的圖上添加文字等,求大神T-T

只提指導,沒有源碼
在 Java 中要自定義組件,一般是覆蓋掉 protected void paintComponent(Graphics g); 方法就可以了,對於你這個類似畫筆的程序,首先,整個畫布是一個自定義的繼承自像 JPanel 一樣的東西,不過我們需要覆蓋它的 paintComponent 方法,因為:一、我們需要在當滑鼠拖放一個東西時我們移動這個選中的圖形時記住它的位置;二、設定 label 時需要保存它的 Label。三、知道圖形的形狀。
,然後在 paintComponent 時依次畫出各個圖形來。

要繪圖:

1、直線,g.drawLine(x,y,x2,y2); // 參數分別是起止點坐標。
2、矩形,g.fillRect(x, y, w, h); // 參數分別是左上角坐標和寬及高。
3、橢圓,g.fillOval(x, y, w, h); // 參數分別是橢圓形的外切矩形的左上角坐標及寬和高,當w 和 h 相等時是個圓。

准備繪圖前 g.setColor() 設置前景色;先把整個畫布用 g.fillRect() 塗成白色,再分別畫各個圖形,最後繪制 Label 應該在畫圖形之後再做。

移動圖形,是給 畫布組件 addMouseMotionListener 來監聽事件的,在拖動時先通過 mouseDragged 事件的 MouseEvent.point 知道它的位置是在哪個圖形的內部,之後的移動就修改這個圖形的位置。

㈡ java:用星號輸出漢字 文

1.自己在本子上畫出一個表格,通過描黑其中部分單元格來形成一個字。 2.記錄每個描黑點的位置,記錄方式如下。「1-3」 「2-5」 第一個數組是行數,第二個數字為第幾列。 講記錄的數組輸入到程序中。或者自己定義一個文件,按照一定的格式記錄黑點的位置,輸入的文件中。 3.java程序負責初始化的時候載入黑點位置。用java二維數組來表示一個表格,數組中每個值如果為0是沒有描黑的,如果為1是描黑的。 4.便利這個數組輸出。遇到0輸出「☆」。遇到1輸出「★」。

麻煩採納,謝謝!

㈢ Java中如何設置文字閃爍效果

定義一個布爾型成員變數flag=true 你寫個方法在窗口或者畫布循環畫文字直到flag==false時停止 然後給窗口或者畫布加上鍵盤監聽器 一旦按下任務鍵就把flag設為false

㈣ java自定義字體文字和圖片生成新圖片(高分)

這個技術好實現,思想如下:

  1. 用js控制;

  2. 再根據文字與形式生成圖片;

  3. 再輸出即可。


我以前做過。

㈤ 請教JAVA牛人,怎麼把通過JAVA查一個漢字的數字點陣

以前DOS時代搞過這個。如果你能拿到GB_2312字型檔,就能做到。將Unicode碼轉變為GB碼,然後高位元組-0xA0,乘以94,再加低位元組-0xA0,這個結果乘以32,去字型檔文件里從頭偏移這么多,讀32位元組,按位每16位一行畫點就是漢字圖形。
圖形好像是翻轉的,時間長了具體記不清了。

試驗了一下,記錯了一點。是減手0xA1。下面的這個類的靜態方法getDotMap獲取一個字的32位元組的點陣。每位為1時應該繪制,0時不繪制。
public class ChineseReader extends JFrame{
private static byte[][] dotMap;
static{
try{
FileInputStream dotMapFile=new FileInputStream("hzk16");
dotMap=new byte[dotMapFile.available()][32];
for(int i=0;i<dotMap.length;i++){
dotMapFile.read(dotMap[i]);
}
dotMapFile.close();
}
catch(FileNotFoundException ex){
ex.printStackTrace();
}
catch(IOException ex){
ex.printStackTrace();
}
}
public static short[] getDotMap(char c){
short[] buffer=new short[16];
int gbCode=Charset.forName("GB2312").encode(String.valueOf(c)).getShort()&0xFFFF;
ByteBuffer buf=ByteBuffer.wrap(dotMap[((gbCode>>8)*94+(gbCode&0xFF))-0x3BBF]);
for(int i=0;i<16;i++){
buffer[i]=buf.getShort();
}
return buffer;
}
}
假設漢字型檔文件以「hzk16」命名,存放在同一文件夾中。你自己找不到16點陣漢字型檔時,找個UCDOS下載,從中能找到的。文件名就是HZK16。

㈥ 用java畫板drawString的字,可以改變大小嗎

可以,用Graphics類的void setFont(Font font)方法來,設定字體的名稱,大小,是否加粗斜體等.
例如 Font f=new Font(null,Font.PLAIN,20);用這個語句定義一個預設字體名稱大小20磅的普通字體對象f,然後用g.setFont(f);為圖形對象Graphics g設定字體大小,畫板drawString的字體大小就會改變了.

㈦ 如何利用java在圖片上添加文字

// 讀取模板圖片內容
BufferedImage image = ImageIO.read(new FileInputStream("c:\\test.jpg"));
Graphics2D g = image.createGraphics();// 得到圖形上下文
g.setColor(Color.BLACK); // 設置畫筆顏色
// 設置字體
g.setFont(new Font("宋體", Font.LAYOUT_LEFT_TO_RIGHT, 15));// 寫入簽名
// 下面這一句中的43,image.getHeight()-10可以改成你要的坐標。
g.drawString("這是新加入的文字", 43, image.getHeight() - 10);
g.dispose();
FileOutputStream out = new FileOutputStream("c:\\test1.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
希望我的回答能幫助你 謝謝 呵呵 答案補充 肯定了 在一張紙上寫字 肯定會自動換行的 否則寫外面?邏輯都通不過去~ 答案補充 把你的意思說出了 是不是隨便的寫字然後就提交 就把字寫在了圖片上還是?多少字 有沒有約束? 答案補充 g.drawString("這是新加入的文字", 43, image.getHeight() - 10);

在這個做處理 你規定了字體的大小 那麼獲取字元的長度*大小 一次判斷不要大於寬度 否則image.getHeight() - 10++ 你試試 應該可以的 我這里沒有Eclipse 答案補充 public class mains {

/**
* @param args
*/

private static int fontsize = 15;

static String jj(String str)
{
String sContent = str;
sContent=sContent.replaceAll(" "," ");
sContent=sContent.replaceAll("<br/>","/");
sContent=sContent.replaceAll("<br>","/");

return sContent;
} 答案補充 static void hh(String str)
{
BufferedImage image;
try {
image = ImageIO.read(new FileInputStream("E:\\dian zi za /789.jpg"));
Graphics2D g = image.createGraphics();// 得到圖形上下文
g.setColor(Color.BLACK); // 設置畫筆顏色
// 設置字體
g.setFont(new Font("宋體", Font.LAYOUT_LEFT_TO_RIGHT, fontsize));// 寫入簽名
// 下面這一句中的43,image.getHeight()-10可以改成你要的坐標。

String text = jj(str); 答案補充 String [] text1 = text.split("/");

int h = image.getHeight();
int w = image.getWidth();
for(int i=0;i<text1.length;i++)
{

g.drawString(text1[i],0,fontsize+i*fontsize);
}
g.dispose();
FileOutputStream out = new FileOutputStream("E:\\dian zi za /789.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close(); 答案補充 public static void main(String[] args) {
// TODO Auto-generated method stub

hh("sdakljsdhww<br/>asdasd<br/>a");
}

}
試試 可以換行 答案補充 關於 圖片的尺寸以及字體是否超出 你自己試著解決下 不要過於依賴問

㈧ java中用Applet繪制圖形及字元串

l.drawString(s,400,400);

你確定Applet的可視區域有這么大嗎

㈨ 怎樣用java繪制弧形文字

用java繪制弧形文字的方法是調用java 2d圖形處理的api實現的。

完整代碼如下:

// 引入需要的jar包

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//定義一個類
public class FontPanel extends JPanel {
//定義一個畫板,入參是圖形g
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font f = new Font("SansSerif", Font.BOLD, 14); 設置字體加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);設置字體加粗,斜體
FontMetrics fm = g.getFontMetrics(f); //得到當前的font metrics
FontMetrics fim = g.getFontMetrics(fi);//得到當前的font metrics

String s1 = "Java ";
String s2 = "Source and Support"; 定義字元串
String s3 = " java 字體變形學習";
int width1 = fm.stringWidth(s1); 設置寬度
int width2 = fim.stringWidth(s2);
int width3 = fm.stringWidth(s3);

Dimension d = getSize(); 設置二維圖形的維度
int cx = (d.width - width1 - width2 - width3) / 2; 計算繪制字體的x軸
int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();計算繪制字體的y軸
g.setFont(f);
g.drawString(s1, cx, cy);
cx += width1;
g.setFont(fi);
g.drawString(s2, cx, cy);
cx += width2;
g.setFont(f);
g.drawString(s3, cx, cy);
}

main方法測試:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("NotHelloWorld2");
frame.setSize(350, 200);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new FontPanel());
frame.show();
}
}

運行結果:

㈩ java 編程:用繪制線段的方法輸出一個紅色的"王"字

import java.applet.*;
import java.awt.*;
public class wang extends Applet
{
public void paint(Graphics g)
{
g.setColor(Color.red);
g.drawLine(10,10,50,10);
g.drawLine(30,10,30,70);
g.drawLine(10,40,50,40);
g.drawLine(10,70,50,70);
}
}
上面是wang.java中的
上面要你編譯一下.
下面是wang.html中的
<applet code=wang.class width=300 height=300></applet>
你到時候打開wang.html這個文件就可以看見了.

閱讀全文

與java畫漢字相關的資料

熱點內容
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:968
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:168
如何做伺服器服務商 瀏覽:762