Java-Java里有现成的字体对话框吗?

Java-Java里有现成的字体对话框吗?

泛泛之交 发布于 2017-01-19 字数 114 浏览 951 回复 1

Java里有现成的字体对话框吗?我查过资料,有颜色对话框,那字体有没有?JSP里面没有,如果没有,谁有参考代码吗?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-06-27 1 楼

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

class FontDialog extends JDialog implements ItemListener, ActionListener {
JComboBox list;
JComboBox listSize; //显示可以选择的字体大小
JTextArea text;
Font font;
JButton yes, cancel;
JComponent com;

FontDialog(JComponent com) {
this.com = com;
setModal(true);
yes = new JButton("Yes");
cancel = new JButton("cancel");
yes.addActionListener(this);
cancel.addActionListener(this);
text = new JTextArea(2, 25);
list = new JComboBox();
listSize = new JComboBox();
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
String fontName[] = ge.getAvailableFontFamilyNames();
for (int i = 0; i < fontName.length; i++){
list.addItem(fontName[i]);
}
//定义字体大小数组,字体大小可以自行定义
int[] fontSize = new int[20];
for (int i = 0; i < fontSize.length; i++){
fontSize[i] = i+5;
listSize.addItem(fontSize[i]);
}
list.addItemListener(this);
listSize.addItemListener(this); //为设置字体大小的添加监听器
Container con = getContentPane();
con.setLayout(new FlowLayout());
Box boxH1 = Box.createHorizontalBox(), boxH2 = Box
.createHorizontalBox(), boxH3 = Box.createHorizontalBox();
Box boxBase = Box.createVerticalBox();
boxH1.add(list);
boxH1.add(listSize); //添加字体大小设置到面板中
boxH2.add(text);
boxH3.add(yes);
boxH3.add(cancel);
boxBase.add(boxH1);
boxBase.add(boxH2);
boxBase.add(boxH3);
con.add(boxBase);
setBounds(100, 100, 280, 170);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
validate();
}

public void itemStateChanged(ItemEvent e) {
String name = (String) list.getSelectedItem();
Integer size = (Integer) listSize.getSelectedItem(); //获得设置的字体大小
font = new Font(name, Font.PLAIN, size);
text.setFont(font);
text.setText("hello,奥运");
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == yes) {
com.setFont(font);
setVisible(false);
} else if (e.getSource() == cancel) {
setVisible(false);
}
}
}

class Dwindow extends JFrame implements ActionListener {
JTextArea text;
JToolBar bar;
Container con;
JButton buttonFont;

Dwindow() {
buttonFont = new JButton("设置字体");
text = new JTextArea("显示内容");
buttonFont.addActionListener(this);
bar = new JToolBar();
bar.add(buttonFont);
con = getContentPane();
con.add(bar, BorderLayout.NORTH);
con.add(new JScrollPane(text));
setBounds(60, 60, 300, 300);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == buttonFont) {
FontDialog dialog = new FontDialog(text);
dialog.setVisible(true);
}
}
}

public class DialogExample {
public static void main(String args[]) {
new Dwindow();
}
}