package com.lovo.frame;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Toolkit;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class MyFrame extends JFrame{

private Container contentP;//内容面板

private JLabel msgLab;//文字标签

private JLabel imgLab;//图片标签

private JTextField usernameTxt;//文本框

private JPasswordField pwdTxt;//密码框

private JButton okBtn;//按钮

private JButton getMoentyBtn;//取钱按钮

private JComboBox<String> teacherCmb;//下拉列表

private JTextArea selfArea;//文本域

private JRadioButton maleRad;//单选框

private JRadioButton femaleRad;

private JCheckBox hobbitBox;//复选框

public MyFrame(){
Toolkit tk = Toolkit.getDefaultToolkit();//获取工具对象
int screenWidth = (int)tk.getScreenSize().getWidth();
int screenHeight = (int)tk.getScreenSize().getHeight();
this.setSize(500, 400);//设置窗体大小--像素
this.setLocation((screenWidth-500)/2, (screenHeight-400)/2);//设置窗体的位置
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭即退出程序
this.setTitle("我的第一个GUI窗体");//标题栏设置标题
this.setIconImage(tk.createImage("image/icon.png"));//设置标题栏图标
this.setResizable(false);//设置窗体改变大小的能力
this.addContent();
this.setVisible(true);//设置该窗体可见
}

private void addContent(){
this.contentP = this.getContentPane();//获取内容面板
this.contentP.setBackground(Color.WHITE);//设置窗体背景色
this.contentP.setLayout(null);//设置布局管理器为null---代表放入该容器的组件的大小位置全靠自定义

//文本标签
this.msgLab = new JLabel("用户名:");//产生对象
this.msgLab.setText("用户名:");
// this.msgLab.setBorder(BorderFactory.createLineBorder(Color.BLACK));//给标签设置边框--调试用
this.msgLab.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.msgLab.setForeground(new Color(82,254,211));//设置字体颜色
this.msgLab.setBounds(100, 20, 80, 30);//设置大小位置
this.contentP.add(this.msgLab);//放入容器

//图片标签
this.imgLab = new JLabel(new ImageIcon("image/fish.jpg"));
this.imgLab.setBounds(200, 20, 243, 167);
this.contentP.add(this.imgLab);

//文本框
this.usernameTxt = new JTextField();
this.usernameTxt.setBounds(20, 70, 100, 30);
this.usernameTxt.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.usernameTxt.setForeground(new Color(82,254,211));//设置字体颜色
// this.usernameTxt.setEditable(false);//设置文本框不可编辑
this.contentP.add(this.usernameTxt);

//密码框
this.pwdTxt = new JPasswordField();
this.pwdTxt.setEchoChar('*');
this.pwdTxt.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.pwdTxt.setForeground(new Color(82,254,211));//设置字体颜色
this.pwdTxt.setBounds(20, 120, 100, 30);
this.contentP.add(this.pwdTxt);

//按钮
this.okBtn = new JButton("确定");
this.okBtn.setText("确定");
this.okBtn.setFont(new Font("微软雅黑",Font.BOLD,16));//设置字体
this.okBtn.setForeground(new Color(82,254,211));//设置字体颜色
this.okBtn.setBounds(20, 160, 100, 30);
this.contentP.add(this.okBtn);

this.getMoentyBtn = new JButton(new ImageIcon("image/buttonGet.jpg"));
this.getMoentyBtn.setBounds(20, 200, 140, 50);
this.contentP.add(this.getMoentyBtn);

//下拉列表
this.teacherCmb = new JComboBox<String>();
this.teacherCmb.addItem("周春艳");
this.teacherCmb.addItem("刘弯弯");
this.teacherCmb.addItem("万洁");
this.teacherCmb.addItem("张欣");
this.teacherCmb.addItem("何茹薇");
this.teacherCmb.setEditable(true);//设置为可编辑为true
this.teacherCmb.setBounds(20, 260, 100, 20);
this.contentP.add(this.teacherCmb);

//文本域
this.selfArea = new JTextArea();
JScrollPane scrollP = new JScrollPane(this.selfArea);
scrollP.setBounds(200, 200, 280, 160);
this.contentP.add(scrollP);

//单选框
this.maleRad = new JRadioButton("男");
this.femaleRad = new JRadioButton("女");
this.maleRad.setBounds(20, 290, 50, 25);
this.femaleRad.setBounds(80, 290, 50, 25);
this.maleRad.setBackground(Color.WHITE);
this.femaleRad.setBackground(Color.WHITE);
this.maleRad.setSelected(true);//设置默认选中
this.contentP.add(this.maleRad);
this.contentP.add(this.femaleRad);
ButtonGroup bGroup = new ButtonGroup();//按钮分组
bGroup.add(this.maleRad);
bGroup.add(this.femaleRad);

//复选框
this.hobbitBox = new JCheckBox("兴趣爱好");
this.hobbitBox.setBounds(20, 325, 100, 25);
this.contentP.add(this.hobbitBox);
}

}

GUI起头的更多相关文章

  1. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  2. 如何通过Git GUI将自己本地的项目上传至Github

    最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...

  3. git图像化界面GUI的使用

    GIT学习笔记 一.        基础内容 1.git是一个版本控制软件,与svn类似,特点是分布式管理,不需要中间总的服务器,可以增加很多分支. 2.windows下的git叫msysgit,下载 ...

  4. egret GUI 和 egret Wing 是我看到h5 最渣的设计

    一个抄袭FlexLite抄的连自己思想都没有,别人精髓都不懂的垃圾框架.也不学学MornUI,好歹有点自己想法. 先来个最小可用集合吧: 1. egret create legogame --type ...

  5. [C#] 走进异步编程的世界 - 在 GUI 中执行异步操作

    走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继<开始接 ...

  6. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  7. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  8. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

  9. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

随机推荐

  1. 6、Docker图形化管理(Portainer)

    一.Portainer简介 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控 ...

  2. 批量备份H3C交换机路由器配置

    第一种(使用ftp下载配置文件): #!/bin/bash datetime=`date +%Y%m%d` BAKTIME=`date +%Y%m%d%H%M%S` user="admin& ...

  3. 4星|《流量池》:Luckin Coffee营销操盘手经验谈

    流量池:“急功近利”的流量布局.营销转化 作者是一线营销操盘手,全书是作者的经验总结,这样的作者在营销类图书中比较罕见,因此这本书非常有价值. 全书是写给巨头之外的企业营销人员看的,这样的企业的流量来 ...

  4. 2013337朱荟潼 Linux第二章读书笔记——从内核出发

    1.获取内核源码 1.1Git 分布式的:下载和管理Linux内核源代码: - 获取最新提交到版本树的一个副本 $ git clone git://git.kernel.org/pub/scm/lin ...

  5. 软件工程实践-git的使用

    ² Github使用心得 其实以前就注册过一个github账号,不过那时只不过是因为在网上看到这个挺对于程序员有着重大作用就顺手去弄了,从未使用过,直到这次软工实践需要我才从新回想起来. 之前的几篇随 ...

  6. week5-Link Layer

    Technology:Internets and Packets course Layer 1 : Link Introduction/The Link Layer moving from histo ...

  7. php://input 和 $HTTP_ROW_POST_DATE

    前言: 年前又换了一家公司.毕业半年,加上之前的实习,第四家公司了.短短半年经历了很多,就这样度过了我的2018.毕业.实习.就业.创业.公司倒闭.频繁跳槽.开工作室净赔.年前自我感觉糟透了,一团糟, ...

  8. beta 圆桌 3

    2018-12-16图片缺失,当日数据: 总工作量:24 已完成:5 剩余:19 031602111 傅海涛 1.今天进展 实时字幕的实现大概 2.存在问题 实时字幕存在不稳定和耗费资源 3.明天安排 ...

  9. Rendertron:谷歌 Chrome 新的 headless 模式又贡献了一个新的技巧

    摘自:https://zhuanlan.zhihu.com/p/31670033 Rendertron:JavaScript Web 富应用的一个老问题是如何使这些页面的动态渲染部分可供搜索引擎检索. ...

  10. sublime text3 增加emmett插件

    本内容基于Windows环境)一.已安装有Sublime Text3 二.安装Package Control    安装这个后,可以在线安装所需的插件    方法1.Ctrl+~打开控制台,在控制台输 ...