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等面向对象编程语言有着莫大的好处,因为一通百通,同样是面向对象,等你精通 ...
随机推荐
- BZOJ3143 [Hnoi2013]游走
首先高斯消元解出每个点被走到的概率 注意到这里走到$n$就停下来了,所以$P(n) = 0$ 解出来以后,给每条边$(u, v)$赋边权$P(u) + P(v)$即可,然后直接贪心 /******** ...
- sql数据库获取表名称和表列名
select * from sysobjects where xtype='u' SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.column ...
- chattr和lsattr
这两个命令是和权限有关 1.chattr +i carlton.txt 对carlton.txt文件进行锁定,谁也不能进行任何修改,取消的话可以chattr -i carlton.txt 就可以 2. ...
- .htacess的url重写(支持伪静态)
html网页纯静态: 1.加载的时候不需要调用数据库,打开速度快,另外减少了服务端脚本的匹配时间.2.减少了服务器对数据响应的负荷.3.从安全角度讲,纯静态网页不易遭受黑客攻击.4.从网站稳定性来讲, ...
- 小游戏Talk表
[Config]1|0|2|久远的记忆影子|你也是误入宠物王国的妹子吧,我在这里等你很久了,或许我们应该一起逃出这里,跟着我.[Config] [Config]2|3|2|久远的记忆影子|这里原本是一 ...
- java动手动脑和课后实验型问题
1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...
- vector algorithm find
本来想着申请了博客园以后 我要写的博客都必须是有深度有内涵的...好吧 结果我只能说我想多了 还是得一步一步慢慢来 最近小学期的任务是要做一个学校食堂餐卡管理系统 有“严重拖延症”的我 果然 ...
- GDAL C# 开发出现的异常
在使用开发C#下的GDAL时,编译时正确. 在执行 Gdal.AllRegister(); 出现异常:OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常. 解决方案: 编译正常, ...
- Spring的入门的程序
1 下载Spring的开发包: spring-framework-3.2.0.RELEASE-dist.zip ---Spring开发包 docs :spring框架api和规范 libs :spri ...
- RHEL6.6 PXE安装-基于VMWare WorkStation
///////////第一部分:安装安装服务器 1.先安装一台RHEL6.6的服务器A(地址为192.168.139.132),作为安装服务器.这样后面的机器就可以指向这台服务器进行自动安装 2.在A ...