课后,我查阅相关学习资料和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); } }
源码
效果图:
*头像就是本人照片