我需要在Java中模擬С#的字體繪圖。其結果是:在c#和Java中字體的等效外觀
Graphics g =this.CreateGraphics();
Font f = new Font("Courier New", 24, FontStyle.Regular, GraphicsUnit.Document);
g.FillRectangle(new SolidBrush(Color.White),0,0,400,400);
g.DrawLine(new Pen(Color.Black), 0, 100, 200, 100);
g.DrawString("Hey go!", f, new SolidBrush(Color.Black), 0, 100);
我已經重新計算字體大小但Java的字體看起來有點destorted。
Font f = new Font("Courier New", Font.PLAIN, 24 * 120/300).deriveFont((float) (24 * 120./300.));
FontRenderContext fontRenderContext = new FontRenderContext(null, false, true);
TextLayout textLayout = new TextLayout("Hey go!", f, fontRenderContext);
Graphics graphics = contentPane.getGraphics();
graphics.setColor(new Color(255, 255, 255));
graphics.fillRect(0, 0, 400, 400);
graphics.setColor(new Color(0, 0, 0));
graphics.drawLine(0, 100, 200, 100);
graphics.setFont(f);
Color c = new Color(0, 0, 0);
graphics.setColor(c);
textLayout.draw((Graphics2D) graphics, 0, 100);
我能做些什麼,使輸出看起來是一樣的? PS:我已經更新了代碼,因爲我發現了一個錯誤。 右鍵單擊圖像以在瀏覽器中查看它們的像素到像素。
您是否在系統上使用大字體? (我猜是基於標題欄中超大的「X」圖標;上一次我看到它們變得格格不入時,就是在使用Large Fonts的系統上。這些似乎破壞了很多程序中的脆弱假設......) – sarnold
我是使用大字體。切換到標準並不能解決問題,雖然改變了C#的外觀。 –
現在,更改底部圖像看起來像關閉了抗鋸齒。 – Howard