⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentframe.java

📁 JSF 演示代码
💻 JAVA
字号:
import java.util.Vector;

import java.awt.Font;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Component;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
import javax.swing.BorderFactory;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.border.Border;

/*
 * 这是维护学生信息的主界面,可以添加、删除指定的学生信息
 */
public class StudentFrame extends JFrame
{
    
    private static final int WIDTH = 500;
    private static final int HEIGHT = 400;
    private JFrame parFrame;
    private JComboBox stuNameCombox = new JComboBox();
        
    public StudentFrame (JFrame frame)
    {
        parFrame = frame;
        Container con = getContentPane();
        
        setSize(WIDTH, HEIGHT);
        setTitle("学生信息维护主页面");
        setResizable(false);
        
        StudentContentPanel content = new StudentContentPanel(stuNameCombox);
        
        
        StudentButtonPanel buttonPanel = new StudentButtonPanel(parFrame, this, stuNameCombox);
        con.add(content, BorderLayout.CENTER);        
        con.add(buttonPanel, BorderLayout.SOUTH);
    }    
}

/*
 * 学生信息主面板
 */
class StudentContentPanel extends JPanel
{
    
    private JLabel nameLabel = new JLabel  ("姓  名: ");
    private JLabel numberLabel = new JLabel("学  号:");
    private JLabel sexLabel = new JLabel   ("性  别: ");
    private JLabel birthLabel = new JLabel ("出生日期: ");
    private JLabel entrayLabel = new JLabel("入学日期: ");
    private JLabel spcialLabel = new JLabel("专  业: ");
    private JLabel addressLabel = new JLabel("籍  贯: ");
    private JLabel detailLabel = new JLabel("学生详细信息",SwingConstants.CENTER);
    private JComboBox nameText;
    private JTextField numberText = new JTextField();
    private JTextField sexText = new JTextField();
    private JTextField birthText = new JTextField();
    private JTextField entrayText = new JTextField();
    private JTextField spcialText = new JTextField();
    private JTextField addressText = new JTextField();
    private JTextArea detailText = new JTextArea(15,20);
    
    private Student oneStudent;
    private OperateStudent operateStudent;
    private String stuName = "";
    private String stuNumber = "";
    private String stuSex = "";
    private String stuBirthday = "";
    private String stuEntryday = "";
    private String stuSpcial = "";
    private String stuAddress = "";
    private String stuCourse = "";
    private String stuComment = "";    
        
    public StudentContentPanel(JComboBox id)
    {
        setBackground(new Color(153,204,204));
        nameText = id;
        
        operateStudent = new OperateStudent();
        StudentStorage store = operateStudent.queryAllStudent();
        Vector vec = store.getStudentVec();
        
        //初始化时,如果数据库中没有相应的记录,相应的组件设置文本内容为空
        if(vec.size() == 0)
        {
            numberText.setText("");
            sexText.setText("");
            birthText.setText("");
            entrayText.setText("");           
            spcialText.setText("");
            addressText.setText("");
            detailText.setText("");
            
        }
        //如果有记录,会根据当前选择的代码号,进行相应组件文本的设置
        else
        {
            for(int i = 0; i < vec.size(); i++)
            {
                oneStudent = (Student)vec.get(i);
                String name = oneStudent.getStudentName();
                nameText.addItem(name);
            }
            
            stuName = (String)nameText.getSelectedItem();
            
            //根据课程代码查询数据库相关的信息
            oneStudent = operateStudent.queryOneStudent(stuName);
            stuNumber = oneStudent.getStudentNumber();
            stuSex = oneStudent.getStudentSex();
            stuBirthday = oneStudent.getStudentBirthday();
            stuEntryday = oneStudent.getStudentEntryday();
            stuSpcial = oneStudent.getStudentSpeciality();
            stuAddress = oneStudent.getStudentAddress();
            stuCourse = oneStudent.getStudentCourse();
            stuComment = oneStudent.getStudentComment();
            
            numberText.setText(stuNumber);
            sexText.setText(stuSex);
            birthText.setText(stuBirthday);
            entrayText.setText(stuEntryday);           
            spcialText.setText(stuSpcial);
            addressText.setText(stuAddress);
            
            String detailString = "";
            if(stuCourse != null)
            {
                detailString = "课程为:" + detailString + stuCourse;
            }
            
            if(stuComment != null)
            {
                detailString = detailString + "\n鉴定为:" + stuComment;
            }
            detailText.setText(detailString);
        }
        
        Border panelOutBorder = BorderFactory.createLineBorder(new Color(255,204,51),4);
        Border panelInBorder = BorderFactory.createLineBorder(new Color(153,204,0),3); 
        setBorder(BorderFactory.createCompoundBorder(panelOutBorder,panelInBorder));
        
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.weightx = 1;
        constraints.weighty = 5;
        this.setLayout(gridbag);
        
        Font labelFont = new Font("Dialog",Font.BOLD,14);
        nameLabel.setFont(labelFont);
        numberLabel.setFont(labelFont);
        sexLabel.setFont(labelFont);
        birthLabel.setFont(labelFont);
        entrayLabel.setFont(labelFont);
        spcialLabel.setFont(labelFont);
        addressLabel.setFont(labelFont); 
        detailLabel.setFont(labelFont);                 
                  

        constraints.anchor = GridBagConstraints.CENTER;        
        add(nameLabel,constraints,0,0,1,1);
        add(numberLabel,constraints,0,1,1,1);
        add(sexLabel,constraints,0,2,1,1);
        add(birthLabel,constraints,0,3,1,1);
        add(entrayLabel,constraints,0,4,1,1);
        add(spcialLabel,constraints,0,5,1,1);
        add(addressLabel,constraints,0,6,1,1);
     
        Font textFont = new Font("Dialog",Font.BOLD,16);
        nameText.setPreferredSize(new Dimension(120,40));
        nameText.setEditable(false);
        nameText.setFont(textFont);
        nameText.setBackground(new Color(153,179,204));
        nameText.setForeground(Color.black);        
        Border outBorder = BorderFactory.createLineBorder(Color.red,2);
        Border inBorder = BorderFactory.createLoweredBevelBorder(); 
        nameText.setBorder(BorderFactory.createCompoundBorder(outBorder,inBorder));
        
        numberText.setPreferredSize(new Dimension(120,40));
        numberText.setFont(textFont);
        numberText.setEditable(false);
        
        sexText.setPreferredSize(new Dimension(120,40));
        sexText.setFont(textFont);
        sexText.setEditable(false);
        
        birthText.setPreferredSize(new Dimension(120,40));
        birthText.setFont(textFont);
        birthText.setEditable(false);
        
        entrayText.setPreferredSize(new Dimension(120,40));
        entrayText.setFont(textFont);
        entrayText.setEditable(false);
 
        spcialText.setPreferredSize(new Dimension(120,40));
        spcialText.setFont(textFont);
        spcialText.setEditable(false);
        
        addressText.setPreferredSize(new Dimension(120,40));
        addressText.setFont(textFont);
        addressText.setEditable(false);
    
        constraints.anchor = GridBagConstraints.WEST;   
        add(nameText,constraints,1,0,1,1);
        add(numberText,constraints,1,1,1,1);
        add(sexText,constraints,1,2,1,1);
        add(birthText,constraints,1,3,1,1);
        add(entrayText,constraints,1,4,1,1);
        add(spcialText,constraints,1,5,1,1);
        add(addressText,constraints,1,6,1,1);
        
        constraints.fill = GridBagConstraints.BOTH;    
        add(detailLabel,constraints,2,0,1,1);
        
        Border outAreaBorder = BorderFactory.createLineBorder(Color.blue,2);
        Border inAreaBorder = BorderFactory.createLoweredBevelBorder(); 
        detailText.setBorder(BorderFactory.createCompoundBorder(outAreaBorder,inAreaBorder));       
        detailText.setLineWrap(true);
        detailText.setEditable(false);       
        JScrollPane scrollPane = new JScrollPane(detailText);
        add(scrollPane,constraints,2,1,1,6);
        
        //为下拉组合框添加事件监听器
        nameText.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    stuName = (String)nameText.getSelectedItem();
                    oneStudent = new OperateStudent().queryOneStudent(stuName);
                    if(oneStudent != null)
                    {
                        stuNumber = oneStudent.getStudentNumber();
                        stuSex = oneStudent.getStudentSex();
                        stuBirthday = oneStudent.getStudentBirthday();
                        stuEntryday = oneStudent.getStudentEntryday();
                        stuSpcial = oneStudent.getStudentSpeciality();
                        stuAddress = oneStudent.getStudentAddress();
                        stuCourse = oneStudent.getStudentCourse();
                        stuComment = oneStudent.getStudentComment();
                        
                        numberText.setText(stuNumber);
                        sexText.setText(stuSex);
                        birthText.setText(stuBirthday);
                        entrayText.setText(stuEntryday);           
                        spcialText.setText(stuSpcial);
                        addressText.setText(stuAddress);
                        
                        String detailString = "";
                        if(stuCourse != null)
                        {
                            detailString = "课程为:" + detailString + stuCourse;
                        }
                        
                        if(stuComment != null)
                        {
                            detailString = detailString + "\n鉴定为:" + stuComment;
                        }
                        detailText.setText(detailString);
                    }
                    else
                    {
                        numberText.setText("");
                        sexText.setText("");
                        birthText.setText("");
                        entrayText.setText("");           
                        spcialText.setText("");
                        addressText.setText("");
                        detailText.setText("");                        
                    }
                }
            });        
    }
    
    public void add(Component c, GridBagConstraints constraints,
        int x, int y, int w, int h)
    {
        constraints.gridx = x;
        constraints.gridy = y;
        constraints.gridwidth = w;
        constraints.gridheight = h;
        add(c,constraints);
    }
}

class StudentButtonPanel extends JPanel
{
    private JFrame parFrame;
    private JFrame subFrame;
    private JComboBox stuNameCombox;
    
    public StudentButtonPanel(JFrame par, JFrame sub, JComboBox id)
    {
        this.parFrame = par;
        this.subFrame = sub;
        this.stuNameCombox = id;
        
        Font buttonFont = new Font("Dialog",Font.BOLD,14);
        
        JButton addButton = new JButton("添加学生");
        JButton deleteButton = new JButton("删除学生");       
        JButton exitButton = new JButton("退出学生信息维护");
        
        addButton.setFont(buttonFont);
		deleteButton.setFont(buttonFont);
		exitButton.setFont(buttonFont);
		
		FlowLayout buttonLay = new FlowLayout();
		buttonLay.setHgap(10);
		buttonLay.setVgap(6);
		
		addButton.setForeground(new Color(204,51,77));
		deleteButton.setForeground(new Color(204,51,77));
		exitButton.setForeground(new Color(204,51,77));
		
        add(addButton);
        add(deleteButton);        
        add(exitButton);
        
        setBackground(new Color(0,153,204));
		setBorder(BorderFactory.createLineBorder(new Color(0,204,153),4));
        
        //删除学生记录
        deleteButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    String stuName = (String)stuNameCombox.getSelectedItem();
                    int i = JOptionPane.showConfirmDialog(null,"你确认要删除姓名为" + stuName + "的学生吗?",
                        "删除学生",JOptionPane.YES_NO_OPTION);
                    if(i == 0)
                    {
                        new OperateStudent().deleteStudent(stuName);
                        stuNameCombox.removeItem(stuName);
                        
                    }                    
                }
            });
        
        //添加学生记录
        addButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    AddStudentFrame frame = new AddStudentFrame(subFrame, stuNameCombox);
                    subFrame.hide();
                    frame.show();
                }
            });            
        
        //返回父窗口
        exitButton.addActionListener(new ActionListener()
            {                        
                public void actionPerformed(ActionEvent e)
                {
                    subFrame.hide();
                    parFrame.show();
                }
            });
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -