操作系统课程设计-子用户界面及托盘实现(2)

2018-11-23 21:04

1 设计目的

本次的课程设计将演示这样一种效果:(l)启动程序后将在任务栏托盘区生成一应用程序托盘;(2)将鼠标移到托盘上显示提示信息“用户界面线程及托盘演示”;(3)左键双击托盘弹出一窗口;(4)右键单击托盘会弹出一菜单:当窗口显示时可用菜单项上“关闭窗口”关闭打开的窗口;单击菜单项“退出”可关闭整个进程(主线程和子线程)此时托盘消失。

一、演示程序的设计思路

(1)为了在关闭显示的窗口后,托盘不会消失,因此须将二个线程(一个主线程和一个子线程)线程中创建主窗口和在任务栏生成托盘并建立托盘和主窗口的消息映射。

(2)将子线程创建成用户界面线程(窗口线程)。主线程动态地生成子线程。 (3)为了在主线程中关闭子用户界面线程,因此需在主线程和子线程之间建立通信机制。

简单地说示例程序主要由三个部分组成:第一部分创建托盘及托盘与主窗口的消息映射;第二部分将子线程创建成用户界面线程(窗口线程)。第三部分为了在主线程中关闭子用户界面线程,因此需在主线程和子线程之间建立通信机制。

第 二1 页

2 设计要求

1 启动程序后将在任务栏托盘区生成一应用程序托盘。 2左键双击弹出一子用户界面窗口 3右键单击托盘可关闭应用程序。

4为了关闭显示的窗口后托盘不会消失,必须将程序设计成两个线程。 5在主线程创建主窗口和在任务栏生成托盘并建立托盘和主窗口的消息映射。 6将子线程创建成用户界面线程(窗口线程)。主线程动态地生成子线程。 7为了在主线程中关闭子用户界面线程,因此需在主线程和子线程之间建立通信机制。

第 三1 页

3 模拟算法的实现

3.1主窗口(main函数)

1.写入文件 2.插入文件 3.显示文件目录 4.显示FAT表 5.搜索文件 6.搜索索引点 磁盘文件的存储结构 0.退出 直接存取的索引文件结构 Main函数 3.2程序源代码

TrayConsole类:托盘图标控制台类

package bin;

import java.awt.AWTException; import java.awt.Image;

第 四1 页

import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.Window;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.MenuItem;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

public class TrayConsole {

private MenuItem item1; private MenuItem item2; private MenuItem item3; private Image image; private TrayIcon trayIcon;

public TrayConsole(final Window window) { item1 = new MenuItem(\隐藏\ item2 = new MenuItem(\关于\ item3 = new MenuItem(\退出\ PopupMenu popup = new PopupMenu(); popup.add(item1); popup.addSeparator(); popup.add(item2); popup.add(item3); image = Toolkit.getDefaultToolkit().createImage(\ trayIcon = new TrayIcon(image,\安徽理工大学\ if(SystemTray.isSupported()) { SystemTray tray = SystemTray.getSystemTray(); try { tray.add(trayIcon); } catch (AWTException e) { JOptionPane.showConfirmDialog(null, \错误,桌面系统托盘当前不可用!\, JOptionPane.CLOSED_OPTION, JOptionPane.WARNING_MESSAGE); }

第 五1 页

} ActionListener AListener1 = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(window.isVisible()) { window.setVisible(false); item1.setLabel(\显示\ } else { window.setVisible(true); ((JFrame)window).setState(JFrame.NORMAL); item1.setLabel(\隐藏\ } } }; ActionListener AListener2 = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, \版权所有 (C) 2013 安徽理工大学\\n 计算机学院 2010级(3)班\关于\ } }; ActionListener AListener3 = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int optionType = JOptionPane.showConfirmDialog(null, \您确实要退出本软件吗?\JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(optionType == JOptionPane.YES_OPTION) { System.exit(0); } } }; MouseAdapter listener = new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON1) { if(window.isVisible()) { window.setVisible(false); item1.setLabel(\显示\ } else { window.setVisible(true); ((JFrame)window).setState(JFrame.NORMAL); item1.setLabel(\隐藏\

第 六1 页


操作系统课程设计-子用户界面及托盘实现(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毛邓三总复习(总资料 一份试卷+答案+知识点分析)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: