JTextPane 可以通過設(shè)置字體,來改變字體,字體樣式,字體大小等.
潘集網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),潘集網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為潘集近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的潘集做網(wǎng)站的公司定做!
核心代碼如下
jtextPane.setFont(new?Font("仿宋",Font.PLAIN,?20));
//第一個(gè)參數(shù),字體名稱
//第二個(gè)參數(shù),字體樣式(普通,加粗,斜體...等)
//第三個(gè)參數(shù),字體大小
完整的代碼和注釋
import?java.awt.*;
import?javax.swing.*;
import?java.awt.event.*;
//本類繼承自JFrame實(shí)現(xiàn)了ActionListener接口
public?class?MyFrame?extends?JFrame?implements?ActionListener?{
//文字面板
JTextPane?jtp;
//?構(gòu)造器
public?MyFrame()?{
//窗口中間的文字面板
jtp?=?new?JTextPane();
jtp.setFont(new?Font("仿宋",Font.PLAIN,?20));
jtp.setText("人生若只如初見,何事秋風(fēng)悲畫扇.");
add(jtp,?BorderLayout.CENTER);//?把文本面板放到中間
//窗口南面的按鈕面板
JPanel?jps?=?new?JPanel();
JButton?jbBold?=?new?JButton("粗體");
jbBold.addActionListener(this);//?給按鈕添加響應(yīng)
JButton?jbItalic?=?new?JButton("斜體");
jbItalic.addActionListener(this);//?給按鈕添加響應(yīng)
JButton?jbBI?=?new?JButton("粗斜體");
jbBI.addActionListener(this);
JButton?jbPlain?=?new?JButton("普通");
jbPlain.addActionListener(this);
jps.add(jbBold);
jps.add(jbItalic);
jps.add(jbBI);
jps.add(jbPlain);
add(jps,?BorderLayout.SOUTH);//?把按鈕面板加入到窗口的南面
//窗口屬性的設(shè)置
setTitle("窗口");//窗口標(biāo)題
setSize(380,?300);//窗口寬?高
setLocationRelativeTo(null);//窗口居中(屏幕中央)
setDefaultCloseOperation(EXIT_ON_CLOSE);//點(diǎn)擊窗口右上角的按鈕時(shí)結(jié)束程序
}
//?ActionListener接口需要實(shí)現(xiàn)actionPerformed方法?。1個(gè)方法可以對(duì)多個(gè)按鈕點(diǎn)擊做出響應(yīng)
@Override
public?void?actionPerformed(ActionEvent?e)?{
String?cmd?=?e.getActionCommand();//?按鈕命令
if?(cmd.equals("粗體"))?{
jtp.setFont(new?Font("仿宋",Font.BOLD,?20));
}?else?if?(cmd.equals("斜體"))?{
jtp.setFont(new?Font("仿宋",Font.ITALIC,?20));
}else?if(cmd.equals("粗斜體"))?{
jtp.setFont(new?Font("仿宋",Font.BOLD+Font.ITALIC,?20));
}else?{//普通字體
jtp.setFont(new?Font("仿宋",Font.PLAIN,?20));
}
}
//?main方法
public?static?void?main(String[]?args)?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
new?MyFrame().setVisible(true);//?實(shí)例化窗口并可見
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
});
}
}
設(shè)置事件監(jiān)聽,之后對(duì)選中的文字setFont()。具體看API,F(xiàn)ont類中的相關(guān)方法!
對(duì),就是靜態(tài)的方法,調(diào)用它時(shí)再java虛擬機(jī)加載類的時(shí)候就運(yùn)行了,因此靜態(tài)方法不用創(chuàng)建對(duì)象就能調(diào)用。而實(shí)例方法也就是非靜態(tài)方法是創(chuàng)建對(duì)象之后,通過對(duì)象名去調(diào)用,所以運(yùn)行的時(shí)機(jī)比靜態(tài)的晚一些。你應(yīng)該是初學(xué)者,應(yīng)該平時(shí)多多注意java虛擬機(jī)的運(yùn)行原理,這樣你會(huì)越學(xué)越快,如果不去弄懂原理,只是記結(jié)果的話,越學(xué)越累,最后就放棄了。以上僅是我的個(gè)人經(jīng)驗(yàn),希望對(duì)你有所幫助。
用java繪制弧形文字的方法是調(diào)用java 2d圖形處理的api實(shí)現(xiàn)的。
完整代碼如下:
// 引入需要的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;
//定義一個(gè)類
public class FontPanel extends JPanel {
//定義一個(gè)畫板,入?yún)⑹菆D形g
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font f = new Font("SansSerif", Font.BOLD, 14); 設(shè)置字體加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);設(shè)置字體加粗,斜體
FontMetrics fm = g.getFontMetrics(f); //得到當(dāng)前的font metrics
FontMetrics fim = g.getFontMetrics(fi);//得到當(dāng)前的font metrics
String s1 = "Java ";
String s2 = "Source and Support"; 定義字符串
String s3 = " java 字體變形學(xué)習(xí)";
int width1 = fm.stringWidth(s1); 設(shè)置寬度
int width2 = fim.stringWidth(s2);
int width3 = fm.stringWidth(s3);
Dimension d = getSize(); 設(shè)置二維圖形的維度
int cx = (d.width - width1 - width2 - width3) / 2; 計(jì)算繪制字體的x軸
int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();計(jì)算繪制字體的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方法測(cè)試:
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();
}
}
運(yùn)行結(jié)果: