weixin_58694222 2021-05-27 16:25 采纳率: 100%
浏览 53
已采纳

java题目解答程序设计

设计一个具有字体设置和设置后字体效果显示的程序。要求具有字体类型和大小选择设置,字体样式和颜色设置,以及字体设置后效果显示功能。此窗体带关闭功能。

  • 写回答

2条回答 默认 最新

  • 关注

    我写了一个,界面是这样,你看看这样可以吗?

    package java3.T8;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JColorChooser;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    
    public class ToolkitDemo extends JFrame implements ItemListener,ActionListener{
    
    	JLabel lblTitle;
    	//多选框
    	JCheckBox cbBold,cbItalic;
    	//下拉列表框
    	JComboBox<Integer> fontSize;
    	//下拉列表框
    	JComboBox<String> fontName;
    	//选择颜色
    	JButton btnColor;
    	
    	//保存粗体,斜体,字号的值
    	int bold=Font.PLAIN;
    	int italic = Font.PLAIN;
    	int size = 20;
    	String fontList[] ;
    	String fontFace = "";
    	public ToolkitDemo() {
    		//调用父类的构造函数,设置窗口标题
    		super("Toolkit工具类的使用");
    		//设置窗口标题
    //		setTitle("Toolkit工具类的使用");
    		//获取toolkit实例
    		Toolkit toolkit = Toolkit.getDefaultToolkit();
    		//加载图片,参数是图片文件的路径
    		Image image = toolkit.getImage("D:\\work\\QQ\\qq.jpg");
    //		Image image = toolkit.getImage("D:/work/QQ/qq.jpg");
    		//把image设置到窗口图标
    		this.setIconImage(image);
    		//获取屏幕大小(显示器的分辨率)
    		//获取屏幕宽度
    		int width = toolkit.getScreenSize().width;
    		//获取屏幕高度
    		int height = toolkit.getScreenSize().height;
    		System.out.println("屏幕宽度:"+width+",高度:" + height);
    		
    		//获取系统支持在字体列表
    		fontList = toolkit.getFontList();
    		for(String fontName : fontList) {
    			System.out.println("字体名称:"+fontName);
    		}
    		fontName  = new JComboBox<String>(fontList);
    		fontName.addItemListener(this);
    		fontFace = fontList[0];
    		lblTitle = new JLabel("展示Font设置属性",JLabel.CENTER);
    		//设置字体颜色
    		lblTitle.setForeground(Color.RED);
    		Font font = new Font("宋体",Font.PLAIN,size);
    		//设置JLabel的字体
    		lblTitle.setFont(font);
    		cbBold = new JCheckBox("粗体");
    		cbItalic = new JCheckBox("斜体");
    		
    		Integer size[] = {10,12,14,18,20,28,38,48,58,72};
    		//创建字体列表
    		fontSize = new JComboBox<Integer>(size);
    		
    		//设置选中的默认值为20
    		fontSize.setSelectedIndex(4);
    		
    		btnColor = new JButton("选择颜色");
    		btnColor.addActionListener(this);
    		//设置Panel的布局为流布局
    		JPanel northPanel = new JPanel(new FlowLayout());
    		//把组件放在面板中
    		northPanel.add(fontName);
    		northPanel.add(cbBold);
    		northPanel.add(cbItalic);
    		northPanel.add(fontSize);
    		northPanel.add(btnColor);
    		//把组件添加到窗口
    		//没有设置位置,默认就是中间BorderLayout.CENTER
    		add(lblTitle);
    		add(northPanel,BorderLayout.NORTH);
    		//注册监听
    		cbBold.addItemListener(this);
    		cbItalic.addItemListener(this);
    		fontSize.addItemListener(this);
    		//再把面板放在窗口中的北部区域
    		setSize(500,400);
    		setVisible(true);
    //		show(); //显示窗口,该函数不推荐使用
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		//窗口居中
    //		setLocationRelativeTo(null);
    		//设置窗口位置
    		setLocation((width-500)/2, (height-400)/2);
    	}
    	//item事件,点击多选框,下拉列表框时,会触发该事件
    	@Override
    	public void itemStateChanged(ItemEvent e) {
    		if(e.getSource() == cbBold) {
    			//选中返回1,反之为2
    			int state = e.getStateChange();
    			if(state == 1) {
    				bold = Font.BOLD; //选中粗体
    			}else {
    				bold = Font.PLAIN;
    			}
    		}else if(e.getSource()==cbItalic) {
    			int state = e.getStateChange();
    			if(state == 1) {
    				italic = Font.ITALIC; //选中斜体
    			}else {
    				italic = Font.PLAIN;
    			}
    		}else if(e.getSource() == fontSize) {
    			//字号,把返回的Object类型的字号强制转换为整形
    			size = (Integer)fontSize.getSelectedItem();
    		}else if(e.getSource() == fontName) {
    			fontFace = fontList[fontName.getSelectedIndex()];
    		}
    		//创建新的字体,然后设置到lblTitle组件中,改变字体
    		Font font = new Font(fontFace,bold + italic, size);
    		lblTitle.setFont(font);
    	}
    	
    	public static void main(String[] args) {
    		new ToolkitDemo();
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		JColorChooser colordlg = new JColorChooser();
    		//打开颜色对话框,并且获取选中的颜色
    		Color color=colordlg.showDialog(this, "请选择字体颜色", Color.BLACK);
    		//设置发送文本框的字体颜色
    		lblTitle.setForeground(color);
    		
    	}
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题