Java(二)
课后,我查阅相关学习资料和Java API制作了以下界面,界面包含了单选按钮(JRadioButton)、复选框(JCheckBox)、组合框(JComboBox)、单行文本输入框(JTextField)以及对话框(JDialog),为label标签设置了背景颜色以及为按钮添加了事件响应。
可以单击下拉菜单选择适应的年月、婚姻状况等,滚动条设置的最大显示数目为五个,单击提交按钮弹出提交页面的对话框,单击对话框中的完成按钮,程序停止。界面用坐标对各个组件进行了定位。
其中有一些要注意的地方:
1、单选框要实现多选一,需要将他们放入一个按钮组中,例如:
ButtonGroup bg = new ButtonGroup(); //创建按钮组
JRadioButton jrb1 = new JRadioButton();
JRadioButton jrb2 = new JRadioButton();
bg.add(jrb1);
bg.add(jrb2);
2、设置背景颜色时,JLabel的默认opaque为false,改变背景颜色用setBackground(Color)即可,要看到效果则需要setOpaque(true)。
3、setBounds(x,y,,width,height);
x:组件在容器X轴上的起点
y:组件在容器Y轴上的起点
width:组件的长度
height:组件的高度
4、其他组件的基本代码可参见以下源码
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField; public class register { public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame("创建您的征婚档案");
frame.setLayout(null); JLabel label0 = new JLabel(" 个人资料:");
label0.setBounds(0,10,450,25);
label0.setFont(new Font("",Font.BOLD,15));
label0.setBackground(Color.ORANGE);
label0.setOpaque(true);
frame.add(label0); JLabel label1 = new JLabel("性 别:");
label1.setBounds(40,55,120,15);
frame.add(label1); JLabel label2 = new JLabel("出生日期:");
label2.setBounds(40,95,120,15);
frame.add(label2); JLabel label3 = new JLabel("工作地区:");
label3.setBounds(40,135,120,15);
frame.add(label3); JLabel label4 = new JLabel("婚姻状况:");
label4.setBounds(40,175,120,15);
frame.add(label4); JLabel label5 = new JLabel("学 历:");
label5.setBounds(40,215,120,15);
frame.add(label5); JLabel label6 = new JLabel("每月收入:");
label6.setBounds(40,255,120,15);
frame.add(label6); JLabel label7 = new JLabel(" 您的账号信息:");
label7.setBounds(0,310,450,25);
label7.setFont(new Font("",Font.BOLD,15));
label7.setBackground(Color.ORANGE);
label7.setOpaque(true);
frame.add(label7); JLabel label8 = new JLabel("手 机 号:");
label8.setBounds(40,355,120,15);
frame.add(label8); JLabel label9 = new JLabel("密 码:");
label9.setBounds(40,395,120,15);
frame.add(label9); JLabel label10 = new JLabel("昵 称:");
label10.setBounds(40,435,120,15);
frame.add(label10); ButtonGroup bg = new ButtonGroup();
JRadioButton man = new JRadioButton("男");
man.setBounds(110,50,40,25);
man.setSelected(true);
JRadioButton woman = new JRadioButton("女");
woman.setBounds(185,50,40,25);
bg.add(man);
bg.add(woman);
frame.add(man);
frame.add(woman); JComboBox data1 = new JComboBox();
data1.addItem("1994年");
data1.addItem("1995年");
data1.addItem("1996年");
frame.add(data1);
data1.setBounds(110,90,80,25); String[] month = {"12月","11月","10月","9月","8月","7月","6月",
"5月","4月","3月","2月","1月"};
JComboBox data2 = new JComboBox(month);
data2.setMaximumRowCount(5);
frame.add(data2);
data2.setBounds(200,90,80,25);
JComboBox data3 = new JComboBox();
data3.addItem("30日");
data3.addItem("29日");
data3.addItem("28日");
frame.add(data3);
data3.setBounds(290,90,80,25); JTextField area = new JTextField("山西省");
frame.add(area);
area.setBounds(110,130,100,25);
JTextField city = new JTextField("请选择");
frame.add(city);
city.setBounds(220,130,80,25); JComboBox marry = new JComboBox<>();
marry.addItem("已婚");
marry.addItem("未婚");
frame.add(marry);
marry.setBounds(110,170,120,25); JComboBox study = new JComboBox<>();
study.addItem("大学本科");
study.addItem("研究生");
study.addItem("博士");
frame.add(study);
study.setBounds(110,210,120,25); JTextField money = new JTextField();
frame.add(money);
money.setBounds(110, 250,160, 25); JTextField number = new JTextField();
frame.add(number);
number.setBounds(110, 350,160, 25); JPasswordField password = new JPasswordField();
frame.add(password);
password.setBounds(110, 390,160, 25); JTextField name = new JTextField();
frame.add(name);
name.setBounds(110, 430,160, 25); JCheckBox cb = new JCheckBox("阅读并同意此服务条款和隐私政策");
cb.setBounds(100,500,260,25);
frame.add(cb); //点鸡提交弹出的页面设置
JDialog dlg = new JDialog(frame,"提交成功");
dlg.setBounds(600,220,200,180);
dlg.setLayout(null);
dlg.setModal(true); JButton btn = new JButton("提交");
frame.add(btn);
btn.setBounds(180,550,75,25); //提交事件响应
btn.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
dlg.setVisible(true);
}
}); //创建对话框中退出按钮并添加事件响应
JButton bt = new JButton("完成");
dlg.add(bt);
bt.setBounds(50,50,80,30);
bt.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
}); frame.setBounds(480,15,450,675);
frame.setVisible(true); } }
源码
效果图:
*头像就是本人照片
Java(二)的更多相关文章
- Atitit java 二维码识别 图片识别
Atitit java 二维码识别 图片识别 1.1. 解码11.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.11.3. 二维码的样例:21.4. 定位图案21.5. 数 ...
- java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍 我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream ou ...
- JAVA二维数组的复制
JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...
- Java二维码生成与解码
基于google zxing 的Java二维码生成与解码 一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> &l ...
- java二叉搜索树原理与实现
计算机里面的数据结构 树 在计算机存储领域应用作用非常大,我之前也多次强调多磁盘的存取速度是目前计算机飞速发展的一大障碍,计算机革命性的的下一次飞跃就是看硬盘有没有质的飞跃,为什么这么说?因为磁盘是永 ...
- Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)
Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)
- Java二次复习笔记(1)
Java二次复习笔记(1) Java采用的默认字符编码集是Unicode. byte=byte+byte报错,值为int,而byte+=byte不报错.同样short = short+short报错, ...
- 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...
- [转]java二维码生成与解析代码实现
转载地址:点击打开链接 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1. 高密度编码,信息容量大 可容纳多达1850个大 ...
- java二
一,面向对象 面向对象,似乎是太抽象了点,没人敢拍着胸脯说我面向对象学到了100%,纵然如此,了解面向对象的思想对于学好java等面向对象编程语言有着莫大的好处,因为一通百通,同样是面向对象,等你精通 ...
随机推荐
- 使用MLeaksFinder检测项目内存泄露总结
前几天看到开源工具MLeaksFinder,决定用在公司的项目中试一下,效果很不错,用法也很简单,直接把项目文件夹拖到项目中就可以了,依靠这个项目,我发现公司项目中有不少内存泄露的地方,在此总结一下: ...
- MVC5+EF6 入门完整教程四
上篇文章主要讲了如何配置EF, 我们回顾下主要过程: 创建Data Model à 创建Database Context à创建databaseInitializerà配置entityFramewor ...
- sq楼盘信息
Sq楼盘信息 1.1按关注度来分 前10个 序号 楼盘 网址 价格 关注人数 地址 附件社区 1 上海公馆 http://shangqiu.jiwu.com/loupan/236459.html 38 ...
- Oracle逻辑备份与恢复
1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMP ...
- fileupload图片预览功能
FileUpload上传图片前首先预览一下 看看效果: 在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片. <%@ Page Language=&q ...
- 'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在windows上使用scrapyd-client 安装后,并不能使用相应的命令'scrapyd-deploy' 需要在"C:\Python27\Scripts" 目录下 增加sc ...
- 【重要!】告K2老客户书
K2近期升级优化了售后支持系统,以便能更好的为亲爱的老客户们答疑解惑,比如:“老妈和老婆掉水里先救谁”.“中午吃啥晚上吃啥”.“技术男怎么学会撩妹”……这些问题,统统不会告诉你.售后TEAM作为一支专 ...
- json处理总结(前端js和后端java)
前端(js): json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键,下面将介绍两者之间的相互转换. json字符串:var st ...
- CentOS 静态IP设置
一.CentOS 修改IP地址修改对应网卡的IP地址的配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 电信 # vi /etc/syscon ...
- LINUX centos 忘记密码
entos7采用的是grub2,和centos6.x进入单用户的方法不同.但是因为用的是真机环境无法截图,所以只是大概描述以下思路. init方法 1.centos7的grub2界面会有两个入口,正常 ...