小弟写了个留言板,编译没有问题,可设置字体总是没有起作用,请大侠指教。import java.awt.*;
import java.awt.event.*;class MyMessageBoard extends Frame implements ActionListener
{
Button butFontName1,butFontName2,butFontName3,butFontName4,
Label lbl1;
TextField txt1;
public MyMessageBoard()
{
super("留言板");
addWindowListener
(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
inistalize();
}
public void inistalize()
{
setSize(660,530);
this.setLayout(null);
lbl1=new Label("请输入你的留言:");
lbl1.setBounds(30,50,170,25);
add(lbl1);
txt1=new TextField("在这里输入你的留言!");
txt1.setBounds(30,82,500,350);
add(txt1);
butFontName1=new Button("宋体");
butFontName1.setBounds(230,460,60,30);
butFontName1.addActionListener(this);
add(butFontName1); butFontName2=new Button("仿宋");
butFontName2.setBounds(291,460,60,30);
butFontName2.addActionListener(this);
add(butFontName2);
butFontName3=new Button("黑体");
butFontName3.setBounds(352,460,60,30);
butFontName3.addActionListener(this);
add(butFontName3);
butFontName4=new Button("楷体");
butFontName4.setBounds(413,460,60,30);
butFontName4.addActionListener(this);
add(butFontName4); setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==butFontName1 | e.getSource()==butFontName2
|e.getSource()==butFontName3 | e.getSource()==butFontName4)
{
//定义一个字体
Font font;
//得到文本框的字体属性
font=txt1.getFont();
//只是在原来的基础上修改字体
if (e.getSource()==butFontName1)
txt1.setFont(new Font("宋体",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName2)
txt1.setFont(new Font("仿宋",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName3)
txt1.setFont(new Font("黑体",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName4)
txt1.setFont(new Font("楷体",font.getStyle(),font.getSize()));
}
}
public static void main(String args[])
{
new MyMessageBoard();
}
}
import java.awt.event.*;class MyMessageBoard extends Frame implements ActionListener
{
Button butFontName1,butFontName2,butFontName3,butFontName4,
Label lbl1;
TextField txt1;
public MyMessageBoard()
{
super("留言板");
addWindowListener
(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
inistalize();
}
public void inistalize()
{
setSize(660,530);
this.setLayout(null);
lbl1=new Label("请输入你的留言:");
lbl1.setBounds(30,50,170,25);
add(lbl1);
txt1=new TextField("在这里输入你的留言!");
txt1.setBounds(30,82,500,350);
add(txt1);
butFontName1=new Button("宋体");
butFontName1.setBounds(230,460,60,30);
butFontName1.addActionListener(this);
add(butFontName1); butFontName2=new Button("仿宋");
butFontName2.setBounds(291,460,60,30);
butFontName2.addActionListener(this);
add(butFontName2);
butFontName3=new Button("黑体");
butFontName3.setBounds(352,460,60,30);
butFontName3.addActionListener(this);
add(butFontName3);
butFontName4=new Button("楷体");
butFontName4.setBounds(413,460,60,30);
butFontName4.addActionListener(this);
add(butFontName4); setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==butFontName1 | e.getSource()==butFontName2
|e.getSource()==butFontName3 | e.getSource()==butFontName4)
{
//定义一个字体
Font font;
//得到文本框的字体属性
font=txt1.getFont();
//只是在原来的基础上修改字体
if (e.getSource()==butFontName1)
txt1.setFont(new Font("宋体",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName2)
txt1.setFont(new Font("仿宋",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName3)
txt1.setFont(new Font("黑体",font.getStyle(),font.getSize()));
else if (e.getSource()==butFontName4)
txt1.setFont(new Font("楷体",font.getStyle(),font.getSize()));
}
}
public static void main(String args[])
{
new MyMessageBoard();
}
}
A logical name must be either: Dialog, DialogInput, Monospaced, Serif, or SansSerif.
现在可能不太支持本地字体库吧txt1.setFont(new Font("宋体",font.getStyle(),font.getSize()));
txt1.setFont(new Font("仿宋",font.getStyle(),font.getSize()));
// 黑体可这样更改
txt1.setFont(new Font("黑体",Font.BOLD,font.getSize()));txt1.setFont(new Font("楷体",font.getStyle(),font.getSize()));
用来获取你需要的字体import java.awt.*;public class Test
{
public static void main(String[] args)
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fArr = ge.getAllFonts();
for (int i = 0 ; i < fArr.length; i ++)
System.out.println(fArr[i].getFontName());
}
}
用javax.swing.JTextField吧
import java.awt.event.*;
import javax.swing.*;class MyMessageBoard extends Frame implements ActionListener {
Button butFontName1, butFontName2, butFontName3, butFontName4;
Label lbl1;
JTextField txt1; public MyMessageBoard() {
super("留言板");
addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
inistalize(); } public void inistalize() {
setSize(660, 530);
this.setLayout(null); lbl1 = new Label("请输入你的留言:");
lbl1.setBounds(30, 50, 170, 25);
add(lbl1); txt1 = new JTextField("在这里输入你的留言!");
txt1.setBounds(30, 82, 500, 350);
add(txt1); butFontName1 = new Button("宋体");
butFontName1.setBounds(230, 460, 60, 30);
butFontName1.addActionListener(this);
add(butFontName1); butFontName2 = new Button("仿宋");
butFontName2.setBounds(291, 460, 60, 30);
butFontName2.addActionListener(this);
add(butFontName2); butFontName3 = new Button("华文行楷");
butFontName3.setBounds(352, 460, 60, 30);
butFontName3.addActionListener(this);
add(butFontName3); butFontName4 = new Button("楷体");
butFontName4.setBounds(413, 460, 60, 30);
butFontName4.addActionListener(this);
add(butFontName4); setVisible(true);
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == butFontName1 | e.getSource() == butFontName2
| e.getSource() == butFontName3 | e.getSource() == butFontName4) {
//定义一个字体
Font font;//得到文本框的字体属性
font = txt1.getFont();//只是在原来的基础上修改字体
if (e.getSource() == butFontName1)
txt1.setFont(new Font("宋体", font.getStyle(), font.getSize()));
else if (e.getSource() == butFontName2)
txt1.setFont(new Font("仿宋", font.getStyle(), font.getSize()));
else if (e.getSource() == butFontName3)
txt1.setFont(new Font("华文行楷", font.getStyle(), font.getSize()));
else if (e.getSource() == butFontName4)
txt1.setFont(new Font("楷体", font.getStyle(), font.getSize()));
} } public static void main(String args[]) {
new MyMessageBoard();
}}改了其中一个字体,你的四种效果不明显。
多行输入用JTextArea
一般电脑里没有仿宋这个字体 只有 仿宋_GB2312