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

📄 coursecomposite.java

📁 学生成绩管理系统 eclipse rcp开发 swt技术
💻 JAVA
字号:
package com.zdh.sms.system;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.List;

import com.zdh.sms.model.Course;


public class CourseComposite {
	private Group group;
	private List courseList; // 课程列表。这里是SWT组件,而非Java集合

	public CourseComposite(Composite parent, int style) {
		createCourseComp(parent, style);
	}

	// 创建课程面板
	private Composite createCourseComp(Composite comp, int style) {
		group = new Group(comp, style);
		group.setText("课程");
		group.setLayoutData(new GridData(GridData.FILL_BOTH));
		group.setLayout(new GridLayout(2, false));
		// 创建课程面板中的组件
		courseList = new List(group, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
		courseList.setLayoutData(new GridData(GridData.FILL_BOTH));
		// 命令按钮面板
		Composite cmdComp = new Composite(group, SWT.NONE);
		cmdComp.setLayout(new RowLayout(SWT.VERTICAL));
		Button addButton = new Button(cmdComp, SWT.NONE);
		addButton.setText("增加");
		addButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				CourseDialog dialog = new CourseDialog(null);
				if (dialog.open() == IDialogConstants.OK_ID) {
					Course course = dialog.getCourse();
					add(course);
				}
			}
		});
		Button removeButton = new Button(cmdComp, SWT.NONE);
		removeButton.setText("删除");
		removeButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				if (courseList.getSelection().length != 0) {
					String sel = courseList.getSelection()[0];
					courseList.remove(sel);
				}
			}
		});
		return group;
	}

	// 控制组面板显示/隐藏的方法
	public void setVisible(boolean enabled) {
		group.setVisible(false);
	}

	// 往courseList里加入一个课程
	public void add(Course course) {
		if (courseList.indexOf(course.getName()) < 0) {
			String name = course.getName();
			courseList.add(name);
			courseList.setData(name, course);
		} else {
			MessageDialog.openError(null, "", "已存在的课程不能添加");
		}
	}

	// 取得课程名
	public String[] getItems() {
		return courseList.getItems();
	}

	// 取得课程名(key)对应的课程
	public Course getData(String key) {
		return (Course) courseList.getData(key);
	}
}

⌨️ 快捷键说明

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