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

通过这学期伍老师的教学以及布置的作业之猜数字和计算器,对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
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值