Java——速学界面设计之"仿Windows记事本的字体窗口"

博主分享了自己仿照Windows字体窗口用Java GUI设计的一个小项目,包括界面代码、监听器代码的详细分析,特别强调了文本框输入监听、鼠标点击事件、Combobox选择监听及按钮处理等关键部分。在遇到困难时,博主寻求老师帮助并解决问题,鼓励大家面对困难要坚持不懈。

通过这学期伍老师的教学以及布置的作业之猜数字和计算器,对Java的界面设计颇为感兴趣,基于此,我就想做点更有意思的东西,所以仿照Windows字体窗口的设计做了一点点东西,中间出现了许多为本人也是新学的知识点,大部分来源于网络,所以在此把自己做了几天的内容,分享出来和大家一起学习。

一、效果图

在这里插入图片描述

二、代码分析

1.界面代码

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

public class Myitem {
   
   
	JFrame Font_dialog=new JFrame("字体");
	String[] font_types={
   
   "方正粗黑宋简体","仿宋","黑体","楷体","宋体","微软雅黑","新宋体","Arial"
			,"Times New Roman"};
	String[] font_types2={
   
   "常规","粗体","倾斜","粗体倾斜"};
	String[] font_types3={
   
   "8","9","10","11","12","14","16","18","20"
			,"22","24","26","28","36","48","72"};
	//											//
	Font font=new Font("方正粗黑宋简体",Font.PLAIN,10);
	Font the_font=new Font("方正粗黑宋简体",Font.PLAIN,10);//初始化
	//											//
	JTextField font_choosed=new JTextField(25);	
	JList list=new JList();
	JScrollPane ScrollPane=new JScrollPane(list);
	JPanel left_panel=new JPanel();
	
	Font[] fonts=new Font[9];
	JLabel left_label=new JLabel("字体(F):");
	//											//
	JTextField font_choosed2=new JTextField(8);	
	JList list2=new JList();
	JScrollPane ScrollPane2=new JScrollPane(list2);
	JPanel center_panel=new JPanel();
	JLabel center_label=new JLabel("字形(Y):");
	//											//
	JTextField font_choosed3=new JTextField(5);	
	JList list3=new JList();
	JScrollPane ScrollPane3=new JScrollPane(list3);
	JPanel right_panel=new JPanel();
	Font[] fonts3=new Font[9];
	JLabel right_label=new JLabel("大小(S):");
	//											//
	JPanel show_panel=new JPanel();
	JLabel show_label=new JLabel("AaBbYyZz");
	//											//
	JComboBox combobox=new JComboBox();
	//											//
	JPanel ends_panel=new JPanel();
	JButton[] btns=new JButton[2];
	public Myitem()
	{
   
   
		Font_dialog.setSize(450,520);
		Font_dialog.setLocation(500,200);
		Font_dialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		Font_dialog.setResizable(false);
		//											//
		create_left_panel();//创建左上组件
		//											//
		create_center_panel();//创建中上组件
		//											//
		create_right_panel();//创建右上组件
		//											//
		show_panel();//创建展示面板
		//											//
		create_bottom_checkbox();//创建底部的选项框
		//											//
		create_ends_panel();//创建最后的两个按钮
		//											//
		Font_dialog.setLayout(null);
		left_panel.setBounds(10,20,170,180);
		center_panel.setBounds(200,20,130,180);
		right_panel.setBounds(350,20,70,180);
		show_panel.setBounds(220,210, 200, 120);
		combobox.setBounds(220,350, 200, 25);
		ends_panel.setBounds(250,440, 200,300);
		//											//
		Font_dialog.add(left_panel);
		Font_dialog.add(center_panel);
		Font_dialog.add(right_panel);
		Font_dialog.add(show_panel);
		Font_dialog.add(combobox);
		Font_dialog.add(ends_panel);
		//											//
		Font_dialog.setVisible(true);
		//											//
	}
	public static void main(String[] args) {
   
   
		new Myitem();
	}
	public void create_left_panel()
	{
   
   
		String[] font_names={
   
   "方正粗黑宋简体","仿宋","黑体","楷体","宋体","微软雅黑","新宋体","Arial"
						,"Times New Roman"};	
		DefaultListModel models=new DefaultListModel();
		int j;
		for(j=0;j<font_names.length;j++)
			{
   
   
				models.addElement(font_names[j]);//在列表模型中添加元素
			}
		list.setModel(models);//对list列表项进行添加默认列表模型
		//相当于在JList list=new Jlist(String [])
		//											//
		font_choosed.setText("方正粗黑宋简体");//定义初始字体状态
		//											//
		list.setVisibleRowCount(7);
		//
		ScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		//
		left_panel.setLayout(new BorderLayout());
		left_panel.add(left_label,BorderLayout.NORTH);
		left_panel.add(font_choosed,BorderLayout.CENTER);
		left_panel.add(ScrollPane,BorderLayout.SOUTH);
	}
	public void create_center_panel()
	{
   
   
		int o;
		///
		String[] font_names2={
   
   "常规","粗体","倾斜","粗体倾斜"};	
		DefaultListModel models2=new DefaultListModel();
		int op;
		for(op=0;op<font_names2.length;op++)
		{
   
   
			models2.addElement(font_names2[op]);//将选项添加到列表list2
		}
		list2.setModel(models2);
		font_choosed2.setText("常规");//定义初始字体状态
		///
		list2.setVisibleRowCount(7
所用工具:Jcreator 一.新建(ctrl+n)→判断:1.保存了,直接新建,框架名为:“新建 文本文档.txt--★海龙记事本★” 2.未保存:提示未保存,要求选则是否保存 选是,保存后新建;选否,不保存直接新建。 二.打开(strl+o)→判断:1.判断文件是否保存(同上) 然后打开,选择文件,只能选(.txt)文件 选择后在记事本中显示出来。 三.保存(ctrl+s)→判断:弹出保存对话框→输入文件名: 1. 如果没有填写后缀名→直接命名在名字后添加未.txt后缀 2. 如果填写了后缀名→则直接以保存为用户要求的后缀名。但是在关闭文件时还是提示未保存(原因是未保存为.txt文件) 四.另存为(F12)→判断:同上。 五.退出(Alt+F4)→判断:1.已保存,直接关闭。 3. 未保存→提示未保存,询问用户是否保存 选择→是:转到保存步骤 选择→否:直接关闭。 六.粘贴(ctrl+c)、复制(ctrl+v)、剪切(ctrl+x)、全选(ctrl+a)、 删除(delete)、时间/日期(F5): 点击或使用快捷键实现编写文件的编辑操作 功能全部实现 七、字体颜色(Ctrl+F): 点击或使用快捷键弹出字体颜色对话框 选择字体颜色后,文字颜色全部改变为所选颜色 八、字体(Ctrl+Q):点击或使用快捷弹出字体对话框 选择字体后,文字全部改变为所选字体 九、自动换行(Ctrl+Q):点击后实现自动换行 再点击后恢复 十、关于记事本(F1)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值