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

📄 courseframe.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.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

/*
 * 这是课程信息维护的主界面,包括添加、删除功能。
 * 如果点击添加按钮,会弹出一个新的界面,让用户输入相应的信息。
 * 如果点击删除,会弹出确认对话框,让用户确认删除的信息。
 */
public class CourseFrame extends JFrame
{
	
	private static final int WIDTH = 400;
	private static final int HEIGHT = 300;
	private JComboBox courseIdCombox = new JComboBox();
    private JFrame parFrame;//父窗口
		
	public CourseFrame (JFrame frame)
	{
	    parFrame = frame;
		Container con = getContentPane();
		
		setSize(WIDTH, HEIGHT);
		setTitle("课程信息维护主页面");
		setResizable(false);//设置用户不可以改变框架的大小
		
		CourseContentPanel contentPanel = new CourseContentPanel(courseIdCombox);
		CourseButtonPanel buttonPanel = new CourseButtonPanel(parFrame, this, courseIdCombox);
		con.add(contentPanel, BorderLayout.CENTER);
		con.add(buttonPanel, BorderLayout.SOUTH);
    }
}

class CourseContentPanel extends JPanel
{
    private JComboBox courseIdCombox;
    private JTextField courseName = new JTextField();
    private JTextField courseTeacher = new JTextField();
    private JTextArea courseDesArea = new JTextArea(15,24);
    
    private Course oneCourse;            
    private String strCourseId;//课程代码
    private String strCourseName;//课程名称
    private String strCourseTeacher;//授课教师
    private String strCourseDes;//课程简述
    
    private OperateCourse operateCourse;
    
    public CourseContentPanel(JComboBox id)
    {
        courseIdCombox = id;
        operateCourse = new OperateCourse();
        CourseStorage store = operateCourse.queryAllCourse();
        Vector vec = store.getCourseVec();
        
        //初始化时,如果数据库中没有相应的记录,相应的组件设置文本内容为空
        if(vec.size() == 0)
        {
            courseName.setText("");
            courseTeacher.setText("");
            courseDesArea.setText("");
        }
        //如果有记录,会根据当前选择的代码号,进行相应组件文本的设置
        else
        {
            for(int i = 0; i < vec.size(); i++)
            {
                oneCourse = (Course)vec.get(i);
                String courseId = oneCourse.getCourseId();
                courseIdCombox.addItem(courseId);
            }
            
            strCourseId = (String)courseIdCombox.getSelectedItem();
            
            //根据课程代码查询数据库相关的信息
            oneCourse = operateCourse.queryOneCourse(strCourseId);
            strCourseName = oneCourse.getCourseName();
            strCourseTeacher = oneCourse.getCourseTeacher();
            strCourseDes = oneCourse.getCourseDes();
            courseName.setText(strCourseName);
            courseTeacher.setText(strCourseTeacher);
            courseDesArea.setText(strCourseDes);            
        }
        //设置所有标签的字体
        Font labelFont = new Font("Dialog",Font.BOLD,14);
        
        // 构造第一个水平箱,并添加组件
        JLabel courseIdLabel = new JLabel("课程代码:");
        courseIdLabel.setFont(labelFont);
        courseIdCombox.setPreferredSize(new Dimension(60, 30));
        Box hbox1 = Box.createHorizontalBox();
        hbox1.add(courseIdLabel);
        hbox1.add(Box.createHorizontalStrut(20));
        hbox1.add(courseIdCombox);

        // 构造第二个水平箱,并添加组件
        JLabel courseNameLabel = new JLabel("课程名称:");
        courseNameLabel.setFont(labelFont);
        courseName.setEditable(false);
        courseName.setPreferredSize(new Dimension(60, 30));
        Box hbox2 = Box.createHorizontalBox();
        hbox2.add(courseNameLabel);
        hbox2.add(Box.createHorizontalStrut(20));
        hbox2.add(courseName);
        
        // 构造第三个水平箱,并添加组件
        JLabel courseTeacherLabel = new JLabel("授课教师:");
        courseTeacherLabel.setFont(labelFont);
        courseTeacher.setEditable(false);
        courseTeacher.setPreferredSize(new Dimension(60, 30));
        Box hbox3 = Box.createHorizontalBox();
        hbox3.add(courseTeacherLabel);
        hbox3.add(Box.createHorizontalStrut(20));
        hbox3.add(courseTeacher);
        
        // 构造一个垂直箱,并添加组件
        JLabel courseDesLabel = new JLabel("课程简述:");
        courseDesLabel.setFont(labelFont);
        courseDesArea.setLineWrap(true);
        courseDesArea.setEditable(false);       
        JScrollPane scrollPane = new JScrollPane(courseDesArea);
        Box hbox4 = Box.createVerticalBox();
        hbox4.add(courseDesLabel);
        hbox4.add(scrollPane);
        
        // 将四个箱体再添加到一个垂直箱中
        Box vbox = Box.createVerticalBox();
        vbox.add(hbox1);
        vbox.add(hbox2);        
        vbox.add(hbox3);
        vbox.add(hbox4);
        
        add(vbox);
        
        //为下拉组合框添加事件监听器
        courseIdCombox.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    strCourseId = (String)courseIdCombox.getSelectedItem();
                    oneCourse = new OperateCourse().queryOneCourse(strCourseId);
                    if(oneCourse != null)
                    {
                        strCourseName = oneCourse.getCourseName();
                        strCourseTeacher = oneCourse.getCourseTeacher();
                        strCourseDes = oneCourse.getCourseDes();
                        
                        courseName.setText(strCourseName);
                        courseTeacher.setText(strCourseTeacher);
                        courseDesArea.setText(strCourseDes);
                    }
                    else
                    {
                        courseName.setText("");
                        courseTeacher.setText("");
                        courseDesArea.setText("");
                    }
                }
            });        
    }
}

class CourseButtonPanel extends JPanel
{
    private JFrame parFrame;
    private JFrame subFrame;
    private JComboBox courseIdCombox;
    
    public CourseButtonPanel(JFrame par, JFrame sub, JComboBox id)
    {
        this.parFrame = par;
        this.subFrame = sub;
        this.courseIdCombox = id;
        
        JButton addButton = new JButton("添加课程");
        JButton deleteButton = new JButton("删除课程");       
        JButton exitButton = new JButton("退出课程信息维护");
        
        add(addButton);
        add(deleteButton);        
        add(exitButton);
        
        //删除课程记录
        deleteButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    String strCourseId = (String)courseIdCombox.getSelectedItem();
                    int i = JOptionPane.showConfirmDialog(null,"你确认要删除代码为" + strCourseId + "的课程吗?",
                        "删除课程",JOptionPane.YES_NO_OPTION);
                    if(i == 0)
                    {
                        int cou = new OperateCourse().deleteCourse(strCourseId);
                        if(cou == 1)
                        {
                            System.out.println("删除成功!");
                            courseIdCombox.removeItem(strCourseId);
                        }
                    }                    
                }
            });
        
        //添加课程记录
        addButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    AddCourseFrame frame = new AddCourseFrame(subFrame, courseIdCombox);
                    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 + -