600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Java 实训 使用弹出对话框设置主窗体中的文本字体

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

时间:2024-02-26 21:17:56

相关推荐

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);}}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。