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

 实训要求:
编写一个主窗体,该窗体有“设置字体”按钮和一个文本区。
编写一个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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值