Java 实训 使用弹出对话框设置主窗体中的文本字体

来源:互联网 发布:淘宝上电子发票在哪里 编辑:程序博客网 时间:2024/05/23 01:56
 实训要求:
编写一个主窗体,该窗体有“设置字体”按钮和一个文本区。
编写一个JDialog的子类; FontDialog,其中使用下拉列表显示全部
字体的名称,当选择下拉列表中某个字体名称后。FontDialog 中使用标签
显示该字体的效果。
在主窗体中点击“设置字体”按钮时弹出FontDialog 对话框。
在FontDialg 对话框中选择完字体,点击确认按钮后返回主窗体并完
成主窗体中文本的字体设置。

参考结果:

代码:
Ziti.java
import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dialog;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import javax.swing.*;public class Ziti extends JFrame {JButton b;JComboBox fontName;JTextArea area;FontDialog fd = new FontDialog();String[] fontArr;String strArr1 = "睿亚训Java课程实验指导书(第二版)";public static void main(String[] args) {Ziti frame = new Ziti();frame.setBounds(600, 250, 800, 600);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setTitle("设置字体");frame.setVisible(true);}Ziti() {fd.ziti = this;area = new JTextArea(5, 10);setLayout(new BorderLayout());b = new JButton("设置字体");b.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("设置字体")) {fd.setVisible(true);}}});area.setText(strArr1);add(b, BorderLayout.NORTH);add(new JScrollPane(area));}void setArea(Font font) {area.setFont(font);}}
FontDialog.java
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class FontDialog extends JDialog implements ItemListener {JComboBox fontName;JTextArea txtContent;Font font1;JButton yes, no;final String[] fontArr;final String strArr = " Hello 奥运";Ziti ziti;public FontDialog() {txtContent = new JTextArea();txtContent.setText(strArr);JScrollPane jsp = new JScrollPane(txtContent);GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();fontArr = env.getAvailableFontFamilyNames();fontName = new JComboBox(fontArr);fontName.addItemListener(this);fontName.setSelectedItem("宋体");FlowLayout layout = new FlowLayout(FlowLayout.CENTER, 40, 5);JPanel pan = new JPanel(layout);pan.add(fontName);Container c = this.getContentPane();yes = new JButton("确定");no = new JButton("取消");yes.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("确定")) {ziti.setArea(font1);setVisible(false);}}});no.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("取消")) {setVisible(false);}}});JPanel pan2 = new JPanel(layout);pan2.add(yes);pan2.add(no);c.add(pan, BorderLayout.NORTH);c.add(jsp, BorderLayout.CENTER);c.add(pan2, BorderLayout.SOUTH);this.setBounds(600, 260, 400, 300);this.setResizable(false);this.setVisible(false);}public void itemStateChanged(ItemEvent e) {String s = (String) fontName.getSelectedItem();font1 = new Font(s, Font.PLAIN, 55);txtContent.setFont(font1);}}

运行结果:



阅读全文
0 0
原创粉丝点击