当前位置: 代码迷 >> J2SE >> 遇到一道题目不知道怎么解决
  详细解决方案

遇到一道题目不知道怎么解决

热度:120   发布时间:2016-04-24 02:11:36.0
遇到一道题目不知道如何解决
编写一个Java程序,在程序中建立一个窗口,能够让用户输入学生的一般信息,并且能对其进行添加和删除操作。
增加功能:点击“增加”按钮后,将输入的学生信息增加在右边的列表框(List)中.
删除功能:在列表框中选中要删除的学生所在行,点击“删除”按钮,删除该行信息.

如图:

初学者,实在不知道如何解决。

------解决方案--------------------
http://book.douban.com/subject/1189850/

你的问题很接近这本书里的那个实例,可以参考学习。
------解决方案--------------------
右面 放一个 JList。

Java code
DefaultListModel model = new DefaultListModel();JList list = new JList(model);
------解决方案--------------------
Java code
import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JSplitPane;import javax.swing.JTextField;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;public class MainFrame extends JFrame implements ActionListener,ListSelectionListener {    private JTextField name;    private JTextField age;    private JTextField tel;    private JRadioButton man;    private JRadioButton women;    private JButton add;    private JButton del;    private JList list;    private Vector<Student> students;        public MainFrame() {        //创建输入信息的部分开始        name = new JTextField(20);        age = new JTextField(20);        tel = new JTextField(20);        man = new JRadioButton("男");        man.setSelected(true);        women = new JRadioButton("女");        JPanel input = new JPanel();        input.setLayout(new FlowLayout());        input.setSize(50, 150);        JPanel p1 = new JPanel();        p1.add(new JLabel("姓名:"));        p1.add(name);        input.add(p1);        JPanel p2 = new JPanel();        p2.add(new JLabel("年龄:"));        p2.add(age);        input.add(p2);        JPanel p3 = new JPanel();        p3.add(new JLabel("电话:"));        p3.add(tel);        input.add(p3);        JPanel p4 = new JPanel();        p4.add(new JLabel("性别:"));        p4.add(man);        p4.add(women);        input.add(p4);        //加入到ButtonGroup中。这样的话同时只能选中一个。        ButtonGroup bg = new ButtonGroup();        bg.add(man);        bg.add(women);        //创建输入信息的部分结束                //创建按钮部分开始        add = new JButton("增加");        add.addActionListener(this);                del = new JButton("删除");        del.addActionListener(this);                JPanel buttons = new JPanel();        buttons.add(add);        buttons.add(del);        this.add(buttons,BorderLayout.NORTH);        //创建按钮部分结束                //创建JList部分开始        students = new Vector<Student>();        Student stu = new Student();        stu.setName("liuming");        //students.add(stu);        list = new JList(students);        list.addListSelectionListener(this);        //创建JList部分开始                JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);        jsp.setDividerLocation(350);        jsp.setDividerSize(3);        jsp.setLeftComponent(input);        jsp.setRightComponent(list);        this.add(jsp);                this.setTitle("简单学生信息管理");        this.setSize(500,400);        this.setResizable(false);        this.setVisible(true);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }        //处理按钮事件    public void actionPerformed(ActionEvent e) {        if(e.getSource() == add) {            if(check())                return;            Student student = new Student();            student.setName(name.getText());            student.setAge(Integer.parseInt(age.getText()));            if(man.isSelected()) {                student.setSex("男");            } else if(women.isSelected()) {                student.setSex("女");            }            student.setTel(tel.getText());            students.add(student);            list.setListData(students);            list.repaint();            JOptionPane.showMessageDialog(this, "添加学生信息成功!");        } else if(e.getSource() == del) {            int index = list.getSelectedIndex();            if(index >= 0) {                Student stu = students.remove(index);                list.setListData(students);                list.repaint();                JOptionPane.showMessageDialog(this, "删除学生" + stu.getName() + "的信息成功!");            } else {                JOptionPane.showMessageDialog(this, "没有选中学生!");            }        }    }        //判断是否输入有空值,年龄是否是数字    private boolean check() {        boolean flag = false;        if(name.getText().equals("")) {            flag = true;            JOptionPane.showMessageDialog(this, "姓名不能为空!");        } else if(age.getText().equals("")) {            flag = true;            JOptionPane.showMessageDialog(this, "年龄不能为空!");        } else if(tel.getText().equals("")) {            flag = true;            JOptionPane.showMessageDialog(this, "电话不能为空!");        } else if(!age.getText().matches("(\\d)++")) {            flag = true;            JOptionPane.showMessageDialog(this, "年龄必须为的数字!");        }        return flag;    }        //处理JList的值改变的事件    public void valueChanged(ListSelectionEvent e) {        int index = list.getSelectedIndex();        Student stu = students.get(index);        String info = "姓名:" + stu.getName() + "\n年龄:" + stu.getAge() + "\n性别:" + stu.getSex() + "\n电话:" + stu.getTel();        JOptionPane.showMessageDialog(this, info);    }        public static void main(String[] args) {        new MainFrame();    }}
  相关解决方案