重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JTextPane 可以通过设置字体,来改变字体,字体样式,字体大小等.
潘集网站建设公司创新互联,潘集网站设计制作,有大型网站制作公司丰富经验。已为潘集近千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的潘集做网站的公司定做!
核心代码如下
jtextPane.setFont(new Font("仿宋",Font.PLAIN, 20));
//第一个参数,字体名称
//第二个参数,字体样式(普通,加粗,斜体...等)
//第三个参数,字体大小
完整的代码和注释
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//本类继承自JFrame实现了ActionListener接口
public class MyFrame extends JFrame implements ActionListener {
//文字面板
JTextPane jtp;
// 构造器
public MyFrame() {
//窗口中间的文字面板
jtp = new JTextPane();
jtp.setFont(new Font("仿宋",Font.PLAIN, 20));
jtp.setText("人生若只如初见,何事秋风悲画扇.");
add(jtp, BorderLayout.CENTER);// 把文本面板放到中间
//窗口南面的按钮面板
JPanel jps = new JPanel();
JButton jbBold = new JButton("粗体");
jbBold.addActionListener(this);// 给按钮添加响应
JButton jbItalic = new JButton("斜体");
jbItalic.addActionListener(this);// 给按钮添加响应
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);// 把按钮面板加入到窗口的南面
//窗口属性的设置
setTitle("窗口");//窗口标题
setSize(380, 300);//窗口宽 高
setLocationRelativeTo(null);//窗口居中(屏幕中央)
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击窗口右上角的按钮时结束程序
}
// ActionListener接口需要实现actionPerformed方法 。1个方法可以对多个按钮点击做出响应
@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);// 实例化窗口并可见
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
设置事件监听,之后对选中的文字setFont()。具体看API,Font类中的相关方法!
对,就是静态的方法,调用它时再java虚拟机加载类的时候就运行了,因此静态方法不用创建对象就能调用。而实例方法也就是非静态方法是创建对象之后,通过对象名去调用,所以运行的时机比静态的晚一些。你应该是初学者,应该平时多多注意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();
}
}
运行结果: