您的位置:首页 > 编程语言 > Java开发

《窗体与对话框的练习——Java第十三周》

2012-11-27 21:01 260 查看
/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称: 《窗体与对话框的练习——Java第十三周》

* 作 者: 刘江波

* 完成日期: 2012 年 11 月 24 日

* 版 本 号: v2.2

* 对任务及求解方法的描述部分

* 问题描述:

编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称。编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局,包含一个JComboBox放在北面显示全部字体的名称,包含一个JLabel放在中间,显示字体的效果,包含两个按钮放在南面,点击YES,在对话框所依赖的窗口中设置字体的效果,点击Cancle取消。编写一个窗口FrameHaveDialog,该窗口有一个按钮和一个文本区,当单击该按钮时,弹出对话框FontDialog,然后根据用户在对话框下拉列表中选择的为显示文本区中的文本。最后编写一个程序执行入口进行测试。如下图所示。

* 程序头部的注释结束

*/

FontFamily类

package week13_2;

import java.awt.GraphicsEnvironment;

public class FontFamily {
	String[] font;
	GraphicsEnvironment ge;

	FontFamily() {
		ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		font = ge.getAvailableFontFamilyNames();
	}

	public String[] getFont() {
		return font;
	}
}


FrameHaveDialog类

package week13_2;

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

public class FrameHaveDialog extends JFrame implements ActionListener {
	
	JButton bt; 
	JTextArea ta;
	JPanel panel;
	FontDialog fontd;
	
	FrameHaveDialog()
	{
		fontd=new FontDialog();
		
		bt = new JButton("设置字体");
		bt.addActionListener(this);
		ta = new JTextArea("Java窗体练习。。。。");
		panel = new JPanel(new FlowLayout());
		
		panel.add(bt);
		this.setLayout(new BorderLayout());
		//BorderLayout是Window型容器默认的布局;
		this.add(panel,BorderLayout.NORTH);
		//this.add(bt,BorderLayout.NORTH);
		this.add(ta);
		
		panel.setFont(new Font("宋体",Font.PLAIN,20));
		ta.setFont(new Font("宋体",Font.PLAIN,20));
		this.setTitle("字体设置窗口");
		this.setBounds(600, 180, 500, 400);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
			if(e.getSource() == bt){
				Font f = new Font(fontd.getStyle(),Font.PLAIN,20);
				ta.setFont(f);
				//ta.setText("设置成功了!");
			}
	}
}


FontDialog类

package week13_2;

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

public class FontDialog extends JDialog implements  ItemListener,ActionListener{
	
	FontFamily ff;
	JComboBox jb;
	String name;
	String []name1;
	JLabel lb;
	JButton bt1,bt2;
	JPanel panel;
	
	public  String getStyle(){
		return name;
	}
	
	FontDialog(){
		ff = new FontFamily();
		jb = new JComboBox();
		name1 = ff.getFont();
		for(int i=0; i<name1.length; i++){
			jb.addItem(name1[i]);
		}
		
		
		jb.addItemListener(this);
		
		lb = new JLabel("字体效果显示");
		
		bt1 = new JButton("YES");
		bt1.addActionListener(this);
		
		bt2 = new JButton("NO");
		bt2.addActionListener(this);
		
		panel =  new JPanel(new FlowLayout());
		
		this.setLayout(new BorderLayout());
		this.add(jb,BorderLayout.NORTH);
		this.add(lb,BorderLayout.CENTER);
//		this.add(bt1,BorderLayout.SOUTH);
//		this.add(bt2,BorderLayout.SOUTH);
		panel.add(bt1);
		panel.add(bt2);
		this.add(panel,BorderLayout.SOUTH);
//		this.add(bt1);
//		this.add(bt2);
		this.setBounds(80, 180, 500, 400);
		this.setVisible(true);
		//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("字体设置选择对话框");
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource() == bt1){
			lb.setFont(new Font(name,Font.PLAIN,20));
		}
		if(e.getSource() == bt2){
			Font f = new Font(null);
			lb.setFont(f);
			lb.setText("字体效果显示");
		}
	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		
		if(e.getSource() == jb){
			name = (String)jb.getSelectedItem();
			
		}
	}	
}










内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: