课后,我查阅相关学习资料和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(二)的更多相关文章

  1. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码11.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.11.3. 二维码的样例:21.4. 定位图案21.5. 数 ...

  2. java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例

    java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍   我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream ou ...

  3. JAVA二维数组的复制

    JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...

  4. Java二维码生成与解码

      基于google zxing 的Java二维码生成与解码   一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> &l ...

  5. java二叉搜索树原理与实现

    计算机里面的数据结构 树 在计算机存储领域应用作用非常大,我之前也多次强调多磁盘的存取速度是目前计算机飞速发展的一大障碍,计算机革命性的的下一次飞跃就是看硬盘有没有质的飞跃,为什么这么说?因为磁盘是永 ...

  6. Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)

    Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)

  7. Java二次复习笔记(1)

    Java二次复习笔记(1) Java采用的默认字符编码集是Unicode. byte=byte+byte报错,值为int,而byte+=byte不报错.同样short = short+short报错, ...

  8. 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用

    062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...

  9. [转]java二维码生成与解析代码实现

    转载地址:点击打开链接 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大 ...

  10. java二

    一,面向对象 面向对象,似乎是太抽象了点,没人敢拍着胸脯说我面向对象学到了100%,纵然如此,了解面向对象的思想对于学好java等面向对象编程语言有着莫大的好处,因为一通百通,同样是面向对象,等你精通 ...

随机推荐

  1. c语言迷宫游戏的实现

    // // main.c // 迷宫游戏代码实现 // #include <stdio.h> #define ROW 6 //宏定义行 #define COL 6 //宏定义列 /** * ...

  2. 关于博弈论中的一硬币正反问题的分析<二>

    昨天分析了一下硬币正反的问题,其中说到一点是求美女收益期望E(女)=-8xy+3y+3x-1 最大化,当然结果我们是说的一个范围内的变化以及可以针对性的调整.这里再次说明一下,不是简单的求二元函数的最 ...

  3. System.Data.Oracleclient需要Oracle客户端软件Version8.1.7或更高版本问题

    C#连接ORACLE报System.Data.Oracleclient需要Oracle客户端软件Version8.1.7或更高版本问题: 开始Webservice在32位系统ORACLE10g库中we ...

  4. 搭建一个分布式MongoDB鉴权集群

    今天休假在家,测试并搭建了一个replica set shard MongoDB鉴权集群.replica set shard 鉴权集群中文资料比较少,本文是个人笔记,同时也希望对后来者有所帮助.本文仅 ...

  5. locate

    pre.cjk { font-family: "Nimbus Mono L", monospace } p { margin-bottom: 0.1in; line-height: ...

  6. 打造最高效的科研环境之Emacs插件们

    0 盲人摸象 作为初学者,迫切的需求就是直接上手Emacs并打造包含自动补全命令在内的科研环境. 和网上众多的插件安装的教程相比,我认为找到一个与自己需求匹配的Emacs配置环境来得更方便. 本例中, ...

  7. 利用yii2 gridview实现批量删除案例[转]

    今天仍然继续探讨GridView的问题,昨天有个小伙伴留言说你用gridview给我去掉表头的链接?我想啊想,这用gridview确实不容易实现,至少我没想出来,会的下方可留言.但是呢,这根gridv ...

  8. 将已有项目提交到github/从github上pull到本地

    去自己的工作分支$ git checkout work 工作.... 提交工作分支的修改$ git commit -a 回到主分支$ git checkout master 获取远程最新的修改,此时不 ...

  9. PO VO DAO DTO BO TO概念与区别(转)

    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据.在O/R Mapping的世界里,有两 ...

  10. Go语言实现简单的一个静态WEB服务器

    package main import ( "net/http" ) func main() { http.Handle("/", http.FileServe ...