窗口编程之基础编程

窗口编程之基础编程

窗口编程有许多许多的类和方法,我相信没有人能全部掌握,这种编程只能靠经验以及查资料。
下面是我编写的一个简单的例子,对其中的每句话基本都有解释,不过窗口编程还是要靠自己的积累。

package com.mec.gewei.practice;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;


public class MyWindows {
	public static final Font topicFont = new Font("微软雅黑",Font.BOLD,32);
	public static final Font normalFont = new Font("宋体",Font.PLAIN,16);
	public static final Font smallFont = new Font("宋体",Font.PLAIN,12);

	
	public static final int topicFontSize = topicFont.getSize();
	public static final int normalFontSize = normalFont.getSize();
	public static final int  smallFontSize = smallFont.getSize();
	
	public static final Color topicColor = new Color(13, 134, 247);
	
	public static final int PADDING = 5;
	
	private JFrame jfrmMainView;//主界面,即窗口
	private JRadioButton jrdbSexMale;//“男”单选框
	private JRadioButton jrdbSexFemale;//“女”单选框
	
	public MyWindows() {
		initView();
	}

	private void initView() {
		init();
		reinit();
	}

	//初始化
	private void init() {
		//1.创造一个窗口	
		jfrmMainView = new JFrame("通用窗口");
		//Dimension类,用于设置尺寸,600为外径
		jfrmMainView.setSize(new Dimension(600, 400));
		//设置自动布局
		jfrmMainView.setLocationRelativeTo(null);
		//设置窗口关闭时,结束窗口线程
		jfrmMainView.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置布局,null代表绝对布局
		jfrmMainView.setLayout(null);
		
		//2.设置标题
		JLabel jlblTopic = new JLabel("标题",JLabel.CENTER);
		//设置字体
		jlblTopic.setFont(topicFont);
		//设置前景色
		jlblTopic.setForeground(topicColor);
		jlblTopic.setSize(585,topicFontSize+4);
		jlblTopic.setLocation(0,0);
		//将jlblTopic加入窗口里
		jfrmMainView.add(jlblTopic);
		
		int top = 100;//距离上边界的距离	
		
		//设置“姓名”两个字
		JLabel jlblName = new JLabel("姓名");
		jlblName.setFont(normalFont);
		//前两个是组件左上角在容器中的坐标,后两个是组件的宽度和高度。
		jlblName.setBounds(100, top, normalFontSize * 2, normalFontSize);
		jfrmMainView.add(jlblName);
		
		//设置填写姓名区域,即后面的文本框
		JTextField jtxtName = new JTextField();
		jtxtName.setFont(normalFont);
		jtxtName.setBounds(100 + jlblName.getWidth() + PADDING, top, 200, 20);
		jfrmMainView.add(jtxtName);
		
		//每次要设置下一行时,距离上边界的距离就要重新计算
		//设置“密码”两个字
		top += jlblName.getHeight() + PADDING;
		JLabel jlblPassword = new JLabel("密码");
		jlblPassword.setFont(normalFont);
		jlblPassword.setBounds(100, top, normalFontSize * 2, normalFontSize);
		jfrmMainView.add(jlblPassword);
		
		//设置填写密码区域,即后面的文本框
		JPasswordField jpswPassword = new JPasswordField();
		jpswPassword.setFont(normalFont);
		jpswPassword.setBounds(100 + jlblName.getWidth() + PADDING, top, 200, 20);
		//设置密码显示符号
		jpswPassword.setEchoChar('*');
		jfrmMainView.add(jpswPassword);
		
		//设置“性别”两个字
		top += jlblName.getHeight() + PADDING;
		JLabel jlblSex = new JLabel("性别");
		jlblSex.setFont(normalFont);
		jlblSex.setBounds(100, top, normalFontSize * 2, normalFontSize);
		jfrmMainView.add(jlblSex);
		
		//设置“男”
		jrdbSexMale = new JRadioButton("男");
		jrdbSexMale.setFont(normalFont);
		jrdbSexMale.setBounds(100 + jlblName.getWidth() + PADDING, top, 98, 20);
		jfrmMainView.add(jrdbSexMale);
		
		//设置“女”
		jrdbSexFemale = new JRadioButton("女");
		jrdbSexFemale.setFont(normalFont);
		jrdbSexFemale.setBounds(jrdbSexMale.getX() + jrdbSexMale.getWidth() + PADDING, top, 98, 20);
		jfrmMainView.add(jrdbSexFemale);
		
		//设置选择性别区域,即单选框
		ButtonGroup btgpSex = new ButtonGroup();
		btgpSex.add(jrdbSexMale);
		btgpSex.add(jrdbSexFemale);	
	}
	
	//刷新
	private void reinit() {
		jrdbSexMale.setSelected(true);
	}
	
	public void showView() {
		jfrmMainView.setVisible(true);
	}
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值