如图。把选选择公寓弄出来就可以
选择楼层是选择公寓的一个事件。如果不选择公寓的话就容易出错。
所以想加个(——请选择——)
然后如果没选择的话做个提示。
代码如下
public AddBedPanel() {
bedidlabel = new JLabel("床位编号");
flatlabel = new JLabel("选择公寓");
floorlabel = new JLabel("选择楼层");
classlabel = new JLabel("选择班级");
bedidfield = new JTextField(); SocketClient socketClient = new SocketClient();
MessageObject messageObject = new MessageObject();
messageObject.setOperate(Const.INITBED);
messageObject = socketClient.handleObject(messageObject, mainframe); // 从后台获得的student数据 flatbox = new JComboBox();
for (Flat flat : messageObject.getFlatList()) {
flatbox.addItem(flat.getFlatid());
flatbox.setToolTipText("此公寓是" + flat.getBorg() + "公寓;住宿费是"
+ flat.getCost() + "元。");
} classbox = new JComboBox();
for (Class classx : messageObject.getClassList()) {
classbox.addItem(classx.getClassname() + "," + classx.getClassid());
} floorbox = new JComboBox();
flatbox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
SocketClient socketClient = new SocketClient();
MessageObject messageObject = new MessageObject();
messageObject.setOperate(Const.INITBED);
messageObject = socketClient.handleObject(messageObject,
mainframe); // 从后台获得的student数据 String s = flatbox.getSelectedItem().toString();
floorbox.removeAllItems();
for (Flat flat : messageObject.getFlatList()) {
if (flat.getFlatid().equals(s)) {
for (int i = 1; i <= Integer.parseInt(flat.getFloor()); i++) {
floorbox.addItem(String.valueOf(i));
}
break;
}
}
}
});

解决方案 »

  1.   

    呵呵。我把整个模块都贴出来把
    public AddBedPanel() {
    tishilabel = new JLabel("床位号生成规则:第一位数是公寓,第二位是楼层,其后为床位编号");
    bedidlabel = new JLabel("床位编号");
    flatlabel = new JLabel("选择公寓");
    floorlabel = new JLabel("选择楼层");
    classlabel = new JLabel("选择班级");
    bedidfield = new JTextField(); SocketClient socketClient = new SocketClient();
    MessageObject messageObject = new MessageObject();
    messageObject.setOperate(Const.INITBED);
    messageObject = socketClient.handleObject(messageObject, mainframe); // 从后台获得的student数据 flatbox = new JComboBox();
    flatbox.addItem("————请选择公寓————");
    for (Flat flat : messageObject.getFlatList()) {
    flatbox.addItem(flat.getFlatid());
    flatbox.setToolTipText("此公寓是" + flat.getBorg() + "公寓;住宿费是"
    + flat.getCost() + "元。");
    } classbox = new JComboBox();
    classbox.addItem("————请选择班级————");
    for (Class classx : messageObject.getClassList()) {
    classbox.addItem(classx.getClassname() + "," + classx.getClassid());
    } floorbox = new JComboBox();
    floorbox.addItem("————请选择楼层————");
    flatbox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
    SocketClient socketClient = new SocketClient();
    MessageObject messageObject = new MessageObject();
    messageObject.setOperate(Const.INITBED);
    messageObject = socketClient.handleObject(messageObject,
    mainframe); // 从后台获得的student数据 String s = flatbox.getSelectedItem().toString();
    floorbox.removeAllItems();
    floorbox.addItem("————请选择楼层————");
    for (Flat flat : messageObject.getFlatList()) {
    if (flat.getFlatid().equals(s)) {
    for (int i = 1; i <= Integer.parseInt(flat.getFloor()); i++) {
    floorbox.addItem(String.valueOf(i));
    }
    break;
    }
    }
    }
    }); submit = new JButton("确定"); // 确定 setLayout(null);
    bedidlabel.setBounds(280, 80, 60, 22);
    classlabel.setBounds(280, 120, 60, 22);
    flatlabel.setBounds(280, 160, 60, 22);
    floorlabel.setBounds(280, 200, 60, 22); tishilabel.setBounds(15, 500, 600, 22);


    bedidfield.setBounds(340, 80, 200, 22);
    classbox.setBounds(340, 120, 200, 22);
    flatbox.setBounds(340, 160, 200, 22);
    floorbox.setBounds(340, 200, 200, 22); submit.setBounds(350, 260, 100, 22); add(bedidlabel);
    add(classlabel);
    add(flatlabel);
    add(floorlabel);
    add(tishilabel); add(bedidfield);
    add(flatbox);
    add(classbox);
    add(floorbox); add(submit); submit.addActionListener(new ActionListener() // 提交数据
    {
    public void actionPerformed(ActionEvent e) {
    if (bedidfield.getText().trim().length() > 7) {
    JOptionPane.showMessageDialog(mainframe,
    new JLabel("床位编号过长,请小于7位"), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    bedidfield.setText("");
    bedidfield.requestFocus();
    return;
    } if (bedidfield.getText().trim().equals("")) {
    JOptionPane.showMessageDialog(mainframe,
    new JLabel("床位编号不能为空!"), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    bedidfield.setText("");
    bedidfield.requestFocus();
    return;
    }
    if (classbox.getSelectedItem().equals("————请选择班级————")) {
    JOptionPane.showMessageDialog(mainframe,
    new JLabel("请选择班级"), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    return;
    }

    if (flatbox.getSelectedItem().equals("————请选择公寓————")) {
    JOptionPane.showMessageDialog(mainframe,
    new JLabel("请选择公寓号"), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    return;
    }
    if (floorbox.getSelectedItem().equals("————请选择楼层————")) {
    JOptionPane.showMessageDialog(mainframe,
    new JLabel("请选择楼层号"), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    return;
    }
    Bed bed = new Bed();
    bed.setBedid(bedidfield.getText().trim());
    bed.setFlatid((String) flatbox.getSelectedItem());
    String s = (String) classbox.getSelectedItem();
    String[] array = s.split(",");
    bed.setClassid(array[1]);
    bed.setFloor((String) (floorbox.getSelectedItem()));
    SocketClient socketClient = new SocketClient();
    MessageObject messageObject = new MessageObject();
    messageObject.setOperate(Const.INSERTBED);
    messageObject.setBed(bed);
    messageObject = socketClient.handleObject(
    messageObject, mainframe);
    JOptionPane.showMessageDialog(mainframe, new JLabel(
    messageObject.getResult()), "提示",
    JOptionPane.INFORMATION_MESSAGE);
    }
    });
    }