java第二次作业
这次通过学习,我掌握了下拉菜单和单选按钮的使用
下拉菜单构造方法:
JComboBox()
创建具有默认数据模型的 JComboBox。
JComboBox(ComboBoxModel aModel)
创建一个 JComboBox,其项取自现有的 ComboBoxModel 中
JComboBox(Object[] items)
创建包含指定数组中的元素的 JComboBox。
JComboBox(Vector<?> items)
创建包含指定 Vector 中的元素的 JComboBox。
单选按钮构造方法:
JRadioButton()
创建一个初始化为未选择的单选按钮,其文本未设定。
JRadioButton(Action a)
创建一个单选按钮,其属性来自提供的 Action。
JRadioButton(Icon icon)
创建一个初始化为未选择的单选按钮,其具有指定的图像但无文本。
JRadioButton(Icon icon, boolean selected)
创建一个具有指定图像和选择状态的单选按钮,但无文本。
JRadioButton(String text)
创建一个具有指定文本的状态为未选择的单选按钮。
JRadioButton(String text, boolean selected)
创建一个具有指定文本和选择状态的单选按钮。
JRadioButton(String text, Icon icon)
创建一个具有指定的文本和图像并初始化为未选择的单选按钮。
JRadioButton(String text, Icon icon, boolean selected)
创建一个具有指定的文本、图像和选择状态的单选按钮。
使用按钮、标签、下拉菜单、密码框、文本框、单选按钮等组件编写了一个“考试报名”的小程序
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.ArrayList;
public class Test extends JFrame {
private static final String VERSION = " 绿色中文版3.2.0";
private JFrame frame;
private JList lb;
private JLabel statusLabel;
private JButton an1, an2,an3,an4,an5;// 按钮
private JLabel bq1, bq2, bq3, bq4, bq5, bq6,bq7,bq8,bq9,bq10,bq11,bq12;
private JPanel mb1, mb2, mb3, xuanxiang, center,mb4;
private JTextField wbk;
private JPasswordField mmk;
private JComboBox xlk;
private JScrollPane gd;
private JRadioButton dx1,dx2;
private ButtonGroup dxz;
private JDialog d;
public Test()
{
makeFrame();
}
private void makeFrame() {
// north
xuanxiang = new JPanel();
bq4 = new JLabel("报考科目:");
bq5 = new JLabel("学历");
String[] jg = { "二级计算机", "二级C语言", "会计从业资格证", "英语四级", "英语六级", "JAVA二级" };
xlk = new JComboBox(jg);
String[] xl = { "高中", "大专", "本科", "硕士", "博士" };
lb = new JList(xl);
lb.setVisibleRowCount(1);
gd = new JScrollPane(lb);
this.setLayout(new GridLayout(2, 1));
xuanxiang.add(bq4);
xuanxiang.add(xlk);
xuanxiang.add(bq5);
xuanxiang.add(gd);
// center
center = new JPanel();
bq4=new JLabel("(一)考生保证不利用本网站从事任何违反法律法规和政策规定的活动, ");
bq9=new JLabel(" 考生保证不进行针对本网站的任何恶意行为。 ");
bq7=new JLabel(" (二)考生承诺已认真阅读本协议,凡点击“同意”之后,表示已与 我 ");
bq10=new JLabel("方自愿达成本协议并完全接受协议各条款的约束。 ");
bq8=new JLabel(" (三)考生承诺将仔细阅读本系统指导考生操作的规定(如报考须知等) ");
bq11=new JLabel("并严格按照其要求操作。 ");
dx1=new JRadioButton("同意");//添加事件响应若选择同意则可以点击报名按钮
dx1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
an3.setEnabled(true);
}});
dx2=new JRadioButton("不同意");//添加事件响应若选择不同意则不可以点击报名按钮
dx2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
an3.setEnabled(false);
}});
dx1.setSelected(true);//单选按钮默认选择同意
dxz=new ButtonGroup();
dxz.add(dx1); dxz.add(dx2);
bq12=new JLabel(" ");
an3 = new JButton("报名");
an3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "恭喜!您已成功报名");
}});
an4= new JButton("退出");
an4.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}});
center.add(bq4);
center.add(bq9);
center.add(bq7);
center.add(bq10);
center.add(bq8);
center.add(bq11);
center.add(bq12);
center.add(dx1); center.add(dx2);
center.add(bq12);
center.add(an3);center.add(an4);
// 窗口
frame = new JFrame("考试报名系统");
makeMenuBar(frame);
Container contentPane = frame.getContentPane();
// Specify the layout manager with nice spacing
contentPane.setLayout(new BorderLayout(6, 6));
contentPane.add(xuanxiang, BorderLayout.NORTH);
contentPane.add(center, BorderLayout.CENTER);
// 通过创建标签对象,在标签中显示VERSION版本信息
statusLabel = new JLabel(VERSION);
contentPane.add(statusLabel, BorderLayout.SOUTH);
ImageIcon tp11 = new ImageIcon("图片/iconpng.png");
frame.setIconImage(tp11.getImage());
frame.pack();
// 通过计算把窗口显示在屏幕中间
frame.setLocation(300,280);
frame.setResizable(false);
frame.setSize(450, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void makeMenuBar(final JFrame frame) {// 声明常量,用于定义菜单的快捷键
final int SHORTCUT_MASK = Toolkit.getDefaultToolkit()
.getMenuShortcutKeyMask();// 获得菜单快捷键的掩码
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu menu;
JMenuItem item;
// create the File menu
menu = new JMenu("用户登录");
menubar.add(menu);
item = new JMenuItem("登录|注册...");
item.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent.VK_O, SHORTCUT_MASK)); // 给Open菜单添加快捷键Ctrl+O
menu.add(item);
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
final JDialog dialog = new JDialog(frame, "登录|注册", true);
mb1 = new JPanel();
mb2 = new JPanel();
mb3 = new JPanel();
bq1 = new JLabel("用户名");
bq2 = new JLabel("密 码");
bq3 = new JLabel("<html><a href='www.qq.com'>注册</a>");
bq3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
an1 = new JButton("登录");
an2 = new JButton("取消");
wbk = new JTextField(10);
mmk = new JPasswordField(10);
dialog.setLayout(new GridLayout(3, 1));
an1 = new JButton("确定");
an1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dialog.dispose();
}
});
an2 = new JButton("取消");
an2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
dialog.dispose();
}
});
mb1.add(bq1);
mb1.add(wbk);
mb2.add(bq2);
mb2.add(mmk);
mb3.add(an1);
mb3.add(an2);
mb3.add(bq3);
dialog.add(mb1);
dialog.add(mb2);
dialog.add(mb3);
dialog.setBounds(600, 400, 200, 150);
dialog.setResizable(false);
dialog.setVisible(true);
dialog.setResizable(false);
}
});
menu.addSeparator();
item = new JMenuItem("退出");
item.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent.VK_Q, SHORTCUT_MASK));
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
menu.add(item);
menu = new JMenu("帮助");
menubar.add(menu);
item = new JMenuItem("关于我们...");
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "当前版本为绿色中文版3.2.0");
}
});
menu.add(item);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test();
}
}
我的照片