魏晋南北朝时期档案职官研究及Java设计GUI图片查看器_第1页
魏晋南北朝时期档案职官研究及Java设计GUI图片查看器_第2页
魏晋南北朝时期档案职官研究及Java设计GUI图片查看器_第3页
魏晋南北朝时期档案职官研究及Java设计GUI图片查看器_第4页
魏晋南北朝时期档案职官研究及Java设计GUI图片查看器_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NO.PAGE1魏晋南北朝时期档案职官研究一、魏晋南北朝时期政治背景概述1.魏晋南北朝时期的政治背景及九品中正制的施行魏晋南北朝时期,是继春秋战国之后的又一个乱世,在这个战火频仍、朝运短促的时代里,每一个王朝的统治者以及觊觎王权的霸主们,都积极地谋求着管理好国家的人才和策略。鉴于对管理朝政的需要,而彼时管理朝政最重要的甚至是唯一的方式就是档案文书,故这些王朝都十分重视文书的处理保存。这不仅表现在皇帝对掌管天下政事的尚书省、中书省职权的不断划分上,还表现在他们对史书的重视上。正是鉴于文书的重要,皇帝才不断地分化尚书、中书的职权,使尚书省逐渐成为一个办理机构,中书省内职权不断下移。同时各朝统治者都加大对前朝及本朝档案资料的编辑和收藏力度,这一时期所编辑的史书、起居注数量之多,在中国历史上是少见的。同时这一时期,为了国家选拔人才,巩固政治的需要,从曹魏时开始实行九品中正制的选官政策。在九品中正法推行之初,可以说还是非常顺畅的,为国家也纳取了相当的人才。但是由于地方上有高门大族把持着,国家政权也为高门望族大开绿灯,因而九品中正制逐渐就成了为高门望族服务的一个制度,形成了“上品无寒门,下品无士族”的门阀政治。尽管田余庆等专家对门阀政治的存在时期有不同见解[1][1],但是在这一时期高门大族对政治的左右影响是不容忽视的。此外,官员的选拔还有辟召、察举制度等,但是这些制度都只是作为九品中正制的补充实施的,它们是出身寒门或一般士族的官员的主要入仕通道,并“在察举制度的发展过程之中,‘以文取人’的发展方向开始占据优势了”[2][2]。同时应该注意的是,察举制度的实行是与王朝皇权与高门大族的争权过程中权衡的一个重要途径,也是新王朝吸引汉族人才的重要途径。2.魏晋南北朝时期中央官制概况魏晋南北朝时期王朝更迭频繁,但整体而言,这一时期的中央官职还是呈现出一些历史共同性。在中央职官的设置方面,魏晋南北朝时期处于一个从三公九卿制向三省六部制转变的一个过程。因而各王朝在中央仍设有三公九卿,他们享有高官厚禄,但是权力大不如昨,基本没有实权。同时又在中央设置了尚书省、中书省、门下省、秘书省及集书省等机构,使尚书令、尚书仆射、中书监令、秘书令、侍中、散骑常侍等这些官员成为国家的支柱,他们左右国家的政令,成为魏晋南北朝时期崛起的中坚势力。同时尚书、中书和门下三省职权在不断变化,到萧梁之际,基本形成了中书省负责诏令起草,门下省负责封驳,而尚书省负责执行的格局。3.魏晋南北朝时期地方官制概况魏晋南北朝时期的地方官制虽然各个王朝各有特点,但是总体而言,基本都采用了州郡县三级地方管理制度,州设刺史,郡设太守,县设县令(长),层层管理,层层负责。但是各个时期州郡县划分不一,尤其是北朝时期,州郡县设置之碎之繁,十羊九牧,为后世所病垢。同时西晋在实行州郡县制的同时,还实行了郡国制,将诸多皇室功臣分封各地以屏蔽王室,结果酿成了“八王之乱”。各郡国相对独立,设有相国、主簿等。二、魏晋南北朝时期中央档案职官及其职掌由于魏晋南北朝时期的三公九卿只是一种崇高的摆设,并不具有实权,因而这一时期的中央档案职官主要集中在尚书省(台)、中书省、门下省、秘书省(寺)及集书省等部门。同时这一时期的档案职官并不具有专一性,且文书与档案并不分家,故笔者将负责文书工作的职官也纳入到档案职官中来介绍。同时为了更好的了解档案职官的职掌,笔者将首先对其所在的部门做以简单介绍,作为其工作的背景,这样对更好的理解档案职官的工作是有补益的。1.曹魏时期的中央档案职官及其职掌(1)尚书台尚书台在秦汉时已设立,但汉尚书台隶属内廷,控制在皇帝之手,称为“中台”。至汉末曹操时期,尚书台才从内廷少府独立出来,直隶于丞相。建安十八年十一月,曹操“以荀攸为尚书令,凉茂为仆射,毛玠、崔琰、常林、徐奕、何夔为尚书[3][3]”。曹魏时期尚书台设有五曹尚书共二十五曹郎,各曹掌管各曹事务。尚书台是曹魏时期最为重要的档案形成机关和保管机关。①尚书令官三品,秩千石。为尚书台长官。下设有尚书左右仆射各一名,亦为官三品,秩六百石。吏部、左民、客曹、左兵和度支等五曹尚书,亦为第三品,秩六百石。吏部尚书为诸曹之首。另有侍郎,官五品,各侍郎分执其事,曹魏先后设尚书郎二十五曹,每一郎缺,则“白试诸孝廉能结文案者五人,谨封奏其姓名以补之”[4][4]。还设有左右丞、郎中、书吏等。②尚书左右仆射官三品,秩六百石。服秩印绶与尚书令同。左右仆射为尚书省副长官,尚书令阙则左仆射为省长官,若左右并阙,则置尚书仆射以主左事,或时领选曹事。③尚书左右丞官六品,秩四百石。尚书左丞主管台内禁令、宗庙祠祀、朝仪礼制、选用置吏,惩诸不法,无所回避。右丞掌管库藏庐舍凡诸器用之物、刑狱兵器等。④尚书主书、主图、主谱令史官八品。他们负责保管各类文书,抄写诏命敕令,典掌朝廷机要。(2)中书省曹操时置秘书令,魏文帝改秘书令为中书令,成立独立的中书省,“及置中书监令,遂掌机衡之任,而尚书之权渐减矣”[5][5]。中书省以中书监、令为首。由于中书监令“典尚书奏事[6][6]”,“管司王言”,中书省成为炙手可热的机构。但曹魏中书省尚处于发展初期,权力很不稳定。同时设秘书省,归中书省管辖。①中书监、令官三品,监位高于令,均秩千石。曹丕称帝时,改秘书令为中书令,又置中书监,并掌管机要,起草和发布诏令。即如有密诏发往各州县和边疆,先由中书发布诏书,然后由尚书省例行公事。中书监和中书令为中书省长官,下设有通事郎、中书舍人、黄门郎等,各负其职。②通事郎即中书侍郎,官五品。负责起草诏书,“魏世中书,始置通事一人,掌呈奏。魏明帝时有通事刘泰是也,高贵乡公时改为通事都尉,寻又改为通事侍郎[7][7]”。凡尚书奏事,“黄门郎已署,事过通事乃署名。已署,奏以入,为帝省读,书可[8][8]”。可见通事郎主要负责皇帝所发诏令的草拟工作,拆读各部门和地方各级官员上呈的奏章,进行分门别类的登记,进而呈送给皇帝,阅批裁决。③秘书监官三品,秩六百石。秘书监司先王之载籍,掌秘书之典谟,同时秘书监负责保管皇帝诏令副本,《三国志·魏书》中载有皇帝诏令“副本在尚书、秘书三府”[9][9]。曹魏时期秘书令初独立设置,职权相当于尚书。后随着曹丕称帝,而隶属于中书省。下设有秘书郎,官六品、著作丞郎,官六品,秩六百石及校书郎,官八品等。④中书及秘书主书、主图、主谱令史官八品。他们负责保管各类文书,抄写诏命敕令,典掌朝廷机要。2.两晋时期中央档案职官及职掌(1)尚书台两晋时期尚书台“已经基本上形成宰相机构”[10][10],是“全国文书上下的枢纽”[11][11]。但其设置比较臃肿,长官仍为尚书令,同时设有录尚书事,与尚书令共掌尚书事务。西晋时尚书台扩大至六曹尚书三十五曹郎,至东晋才精简为五曹尚书十五曹郎。仆射、左右丞等设置同魏。晋时凡尚书官员,大罪则免,小罪则遣出。遣出百日如果无人可替,则可听还本职。①尚书令官三品,秩千石。为尚书省长官,敷奏出纳,事无不总。属官有尚书左右丞、尚书仆射、诸曹尚书郎、侍郎等。尚书左右仆射是尚书省的次官,官三品,秩亦千石,“令缺则仆射总任”[12][12]。②尚书左右丞官六品,秩四百石。尚书左丞主管尚书台内禁令、宗庙祠祀、朝仪礼制、选用署吏、急假等。右丞掌管尚书台内库藏庐舍、所有其用之物及廪赈民户租布、刑狱兵器、督录远道文书、章表奏章等事。③尚书郎官五品,秩四百石。尚书郎负责各曹事务及文书的起草工作,尚书郎对尚书令负责。尚书郎在处理日常事务时,具有很大的独立性,令、仆射只能监督,而不能直接干涉。西晋设有二十三曹郎,两晋时期各有增减,至东晋后期设有十五曹郎。西晋之前,台郎为显职,多为门阀所居。但东晋以后情况有变,高门大户“惟作吏部,不为余曹郎[13][13]”。这是因为曹郎事务繁杂,高门望族崇尚清闲之官;而吏部掌握着官吏的任免升迁,故不易轻易放弃。④令史令史社会地位低微,多由寒人充任。但令史在尚书台中起的作用却颇为重要,也可以说离开他们,整个封建统治机器都无法运转。尤其是到了两晋南朝时期,随着“时俗尚于玄虚,贵为放诞,尚书丞郎以上,簿领文案,不复经怀,皆成于令史”[14][14],令史的作用越发重要了。但“他们也仅是治理文书,惩办具体事务而已[15][15]”,并不掌握实权,台内实权仍为八座及丞郎。(2)中书省两晋之时,中书省地位提高,职权扩大。中书监、令地位很高,比尚书令尤为光彩,《晋书》载有“以勖守尚书令,勖久在在中书(任中书监),专管机事,及失之,甚罔罔怅怅。或有贺之者,勖曰:‘夺我凤凰池,诸君贺我邪!’[16][16]”,可见中书省在整个国家行政机构中的地位之重要。但随着中书省地位声望的提高和职权的膨胀,中书省内职权也开始发生变化。①中书监、令官三品,秩千石。中书令负责起草皇帝诏命,“掌赞诏命,记会时事,典作文书[17][17]”。此时的中书监、令职权远远超越了尚书令的职权,尚书令的诸多职权为中书监、令所取代,他们因为地处枢近,“挥翰紫宸里[18][18]”,表策文诰,“王言之职,总司清要[19][19]”。属员有中书侍郎、中书舍人、通事令史、主书等。②中书侍郎官四品,置员四人。《宋书·百官志下》载东晋后期省掉了通事舍人,“中书侍郎一人直西省,又掌诏命”。“西省”即为中书省,可见中书侍郎负责掌管中书省内形成保存的诏命,对其实施统一的保管。到东晋时期,中书侍郎负责诏草更为普遍。③通事舍人源自魏时的中书通事舍人,东晋时称通事舍人,“后除通事字,直曰中书舍人,专掌诏诰兼呈奏之事”[20][20]。但后来职权被削减,“唯掌呈奏,宣王言”[21][21],不再负责掌管诏命的保存情况。(3)秘书省西晋初年,秘书省隶属中书省,至晋惠帝永平中,因为秘书监“典文籍”,与中书省职权不同而分置秘书省。秘书监为秘书省长官。秘书省公务相对清闲,因而逐渐成为高门士族的进身之阶,西晋秘书监华峤曾说:“此职闲廪重,贵势多争之,不暇求其才”[22][22]。①秘书监官三品,秩六百石。为秘书省长官,下设属官秘书丞二人,官六品、著作郎四人,官六品,均秩四百石,负责国家图书秘记的保管工作。其中著作郎有一人,称为大著作郎,负责掌管国史的编辑和整理保管,另有佐著作郎八人。②著作郎官六品,秩四百石。但晋代尤其是西晋又往往以侍中、中书监、秘书监等高官兼领著作郎,张华甚至还以司空兼领著作郎,故著作郎的实际官品往往较高。著作郎专掌史任,并负责起居注的撰写。③著作佐郎官六品。著作佐郎的职掌据《史通·史管建置》篇称:“旧事,佐郎职知博采,正郎资以草传”[23][23]。著作佐郎作为著作郎的副手,负责为著作郎提供素材。佐郎到东晋后期成为士家子弟的起家之选,如王蕴、蔡廓等,起家均为著作佐郎。(4)门下省因为中书省位高权重,易功高盖主,皇帝为防止其权力过大,故“东晋以来,天子以侍中常在左右,多与之议政事,不专任中书,于是又有门下,而中书之权始分矣[24][24]”。门下省在两晋时期地位提高,开始涉足国家机密。东晋门下省的设立具有重大意义,它“使中央机构三省制基本形成”[25][25],成为我国封建时代国家机构发展史上的一个重要转折时期。①侍中官三品,置四人。掌管傧赞威仪,评议尚书奏事等,参与皇帝诏令文翰。《晋书·温峤传》曰:“明帝即位,拜(温)侍中,机密大谋多所参综,诏令文翰,亦悉豫焉”。因其与皇帝关系密切,故侍中的意见在很大程度上代表着皇帝的意志,因而侍中的意见对于尚书奏疏有着举足轻重的意义,尤其是到了后期这种作用显得越发明显。下设有给事黄门侍郎,散骑常侍、通直散骑常侍、通直散骑侍郎、给事中等。②黄门侍郎官五品,置四人,为侍中下属。黄门侍郎与侍中、散骑常侍、侍郎一起负责对尚书奏事的评议事务,有权提出反对意见,使得尚书奏疏更能切中事务要害。③散骑常侍、侍郎散骑常侍官三品,秩比二千石;侍郎官五品,秩六百石。“魏晋散骑常侍、侍郎,与侍中、黄门侍郎共平尚书奏事[26][26]”,“而以中书职入散骑省,故散骑亦掌表诏焉[27][27]”。可见西晋时散骑常侍、侍郎并不具体负责保管诏命。但到东晋“章表诏命则取之散骑”[28][28],散骑常侍不再参预平尚书奏事,而负责保管表疏等档案文书。据一些史料载,其实在西晋时,散骑常侍、侍郎就已开始掌管诏令。《华峤集》中华峤说:“散骑以从容侍从,承答顾问为职,又掌赞诏命,平处文籍,故前世多参用言语文学之士[29][29]”。(5)御史台御史台负责监察百官、推鞫刑狱。由御史中丞为台主,下设有侍御史、主簿、监察御史等,其中侍御史负责台中形成的文件。治书侍御史、黄沙狱治书侍御史晋置治书侍御史四人,官六品,秩千石,负责掌管律令、诏狱、刻印等事物。又置黄沙狱治书侍御史一人,官亦六品,秩与中丞(秩千石)同,掌管诏狱兼治廷尉处置不当等事项。3.南朝时期中央档案职官及职掌(1)尚书省宋、齐时称尚书台,梁、陈时称尚书省。尚书省到了南朝,“位高而权渐轻”[30][30]。其职权为中书省、门下省所分割。尤其是到了萧梁时期,尚书省基本上就变成了单纯的具体执行机关,不再参与决策。但是尚书省官员的档案职官的色彩并没有因为其职权的变化而有所变化,台省官员依然负责保管部分重要文件档案,依然是整个档案行政中的重要一环。①尚书令官三品,秩千石,至陈秩已上秩中二千石。尚书令任总机衡。下设有尚书左右仆射分领诸曹。另有吏部、左民、度支等各尚书,亦官三品,秩六百石。左右丞各一人,官六品,秩四百石。另有尚书郎、都令史、令史、书令史、书吏若干。萧梁天监七年,定十八班官制。尚书令为十六班,左右仆射为十五班,各部尚书为十四班至十三班,左右丞为九班至八班,同班者以居下者为劣。宋齐时,尚书令尚负责部分文书起草事务,但随着中书省和门下省的崛起,到萧梁时,尚书省成为一个单纯的承办机构,不再负责文书诏命的起草拟定工作。②尚书左右仆射官三品,萧梁时为十五班,秩六百石。左右仆射各设一人,仆射为尚书省二副,如果尚书令不在,尚书仆射即为尚书省长官,可以代行尚书令职权。尚书左右仆射分领诸曹,参掌选事机密。③左民曹尚书官三品,萧梁时为十四班,秩六百石。负责“掌天下计帐,户籍等事[31][31]”,设东西二库藏东晋黄籍。即左民尚书负责天下的地籍和户口的丈量统计工作,并负责编制和保管全国地籍和户籍。左民曹还负责保管百官的家族谱牒,“凡百官族姓之有家状者则上之,官为考定详实,藏于秘阁,副在左户”[32][32]。左户即为左民曹。④殿中郎陈时官四品,秩六百石,为度支曹尚书属官。负责“掌驾行百官留守名帐、宫殿禁卫、供御衣仓等事[33][33]”。即殿中郎负责对每次的人财物的收进移出等情况作详细登记,以备查考和核对。⑤尚书左右丞官六品,萧梁时为九班至八班,秩四百石。尚书左右丞各设一人,尚书左丞掌台内分职仪、禁令、报人章,督录近道文书章表奏事,纠诸不法。尚书右丞掌台内藏及庐舍、凡诸器用之物,督录远道文书章表奏事。凡尚书省重要文书,都要用挈囊盛装,并用左丞印封口。(2)中书省中书省的决策地位日益明显,但是中书省内部职权下移倾向也愈加明显,“自魏晋诏诰,皆中书令、中书侍郎掌之。至梁始舍人为之[34][34]”。中书省内部职掌地变化是与南朝寒门在政治上的兴起相关的。由于南朝四代均属寒门出身,他们虽保留着九品中正的选官之道,但对于高门的职掌越来越倾向高位薄权。而位居九品的中书舍人由于品级太低,则成为寒门窃据的宝地,这样中书省内部权力下移的趋势就形成了。①中书监、令官三品,萧梁时中书监为十五班,中书令为十三班,秩千石。中书监、令各一人,任总国权,专典诏命。下设有中书侍郎四人,官五品,掌诏命,由其中功高者一人负总责,主管中书省内部事务。中书通直正员郎敕掌中书诏诰,另设有通事舍人四人、主事令史、令史等若干。由于中书监令职务清闲,逐渐演化为清闲无事的荣誉头衔。在两晋时期掌管诏草的中书侍郎也日益成为清美之选,成为太子庶子的起家之选。②中书舍人官九品,置四人,初名通事舍人,后除通事,而直称中书舍人。“齐初亦用久劳及以亲信,关献表启,发署诏敕。颇涉辞翰者,亦为诏文,侍郎之局复见侵矣。建武世,诏命始不关中书(指中书监、令、中书侍郎),专出舍人。省内舍人四人,所直四省。……天下文簿板籍,入副其省,万机严秘,有如尚书外司[35][35]”。齐明帝时,舍人四户把控朝政,关献表启,发署诏敕,势倾天下。梁武帝重用中书舍人,而使得中书省内部权力由中书监、令和侍郎转移至中书舍人。至陈代“国之政事,并由中书舍人五人,令主书十人,书吏二百人,分掌二十一局事,各当尚书诸曹,并为上司,总国内机要,而尚书唯听受而已[36][36]”。舍人权力更大,典军国机密。因而中书舍人成为南朝中央最重要的档案职官之一。(3)门下省、集书省南朝宋时又别置集书省,从而形成了门下省与集书省两省并置的局面。以侍中领门下省,散骑常侍领集书省,二省拥有进谏、封驳之权,它的出现是分中书省权力的客观需要。因此南朝时中书省的部分职权被门下省所夺,但是门下省官与中书省官相比,仍然有不及之处。①侍中侍中置四人,侍中“掌侍从左右,摈相威仪,尽规献纳,纠正违阙。监合尝御药,封玺书”[37][37]。即侍中有文书政令的封驳大权,可以对中书省的奏章中不合适的地方提出异议,纠正违阙。②侍中祭酒南朝置给事黄门侍郎四人,侍中祭酒为其中高功者,设一人。“(给事黄门)侍郎中高功者,在职一年,诏加侍中祭酒,与(散骑)侍郎高功者一人,对掌禁令”[38][38]。③散骑常侍南朝散骑常侍置四人,为集书省长官。“自宋以来,其任闲散,用人亦轻,别置集书省领之”[39][39]。属官有通直散骑常侍四人,散骑侍郎若干等。散骑常侍的职权与侍中相同,掌有封驳大权,“掌侍从左右,纳献得失,省诸奏闻、文书。意异者,随事为驳。集录比诏比玺,为诸优文、策文,平处诸文章诗颂”[40][40]。同时散骑常侍还负责诏令的抄写集录工作。④散骑常侍祭酒散骑常侍祭酒秩比二千石。常侍祭酒置一人,与侍中祭酒一同“对掌禁令,纠诸逋违”[41][41]。⑤员外散骑侍郎、给事中、常侍侍郎、奉朝请均隶属集书省,员外散骑侍郎,官六品,秩四百石。常侍侍郎官五品,奉朝请官八品。其中奉朝请多为皇亲国戚。他们负责献纳得失,处理奏闻文书,如有不同意见,可以随时封驳。⑥公车令官八品,秩并六百石。置一人。公车令掌受章奏。凡吏民上章,四方贡献,及征诣公车者,皆由公车令负责保管。(4)秘书省南朝秘书省仍负责掌管国家典籍,及史书起居的撰写。以秘书监为长官,由于秘书省职务清闲,因而也成为清美之选。秘书监、秘书丞各置一人,秘书监官四品,萧梁时为十一班,陈时秩中二千石。秘书丞为八班,陈时秩已上六百石。另有秘书郎四人,共掌集书诏策。另设有著作郎一人官六品,秩四百石,佐郎八人,掌管国史和起居注的编写和保存。还有撰史学士,兼管史书。秘书丞郎,宋齐以后成为门阀弟子的起家官,为“甲族起家之选,待次入补[42][42]”,因名额有限,照例任此职仅数十日或百日便要升迁,以便待次入补的高门子弟继任。(5)图谱局图谱局设立于梁武帝时期,梁武帝为查处并纠正假冒士族的家谱,命王憎孺修定《百家谱》,并设置专门保管谱牒的机构——图谱局,及专管图谱局的官吏——郎、令史。图谱局主要负责谱牒的收藏、谱系的厘定以及谱牒的撰写。郎、令史为图谱局专管谱牒的官员,他们负责谱牒的收藏、谱牒的厘定、谱牒的撰写以及全国谱系的修订。由于谱牒“系之地望而不惑,质之姓氏而不疑,缀之婚姻而有别[43][43]”,加之“官之选举必由于簿状”[44][44],因此谱书修撰的正确与否,不仅仅影响士族地主的利益,而与国家的政治是否稳定,赋税收入的多少,服役人数的多寡都有密切的联系。宗正卿官三品,萧梁时为十四班,秩中二千石。主管皇室外戚的图谱户籍,处理宗族事务,一般由宗室子弟担任。4.北朝时期中央档案职官及职掌(1)尚书省北朝尚书台的设置各朝稍有不同,但与南朝相比,尚书省也分上下两省,但其职权有很大削弱,这与北朝重视门下省有很大关系。同时与南朝不同的是,北朝尚书中没有左民曹,而有殿中曹,更加重视皇家事务的管理。①尚书令官二品,秩千石。尚书令总任机衡,“铨衡是司,厘品庶物”[45][45],总录机要,内外听焉。北齐时曾置录尚书一人,位在尚书令之上,职掌与尚书令相同。属官与前朝同,有左右仆射、左右丞、尚书郎等,只是在具体职掌范围有所变更,以左右丞变化比较明显。②尚书左右丞北朝尚书左右丞地位品级似乎比南朝高,左右丞分别掌管尚书省诸曹事,“左丞掌吏部、考功、主爵、殿中、仪曹、三公、祠部、主客、左右中兵、左右外兵、都官、二千石、度支、左右户十七曹,并弹纠见事。又主管辖台中,有违失者,兼纠驳之。右丞掌驾部、虞曹、屯田、起部、都兵、比部、水部、膳部、仓部、金部、库部十一曹。亦管辖台中,又主凡诸用度杂物、脂、灯、笔、墨、帏帐。唯不弹纠,余悉与左丞相同”[46][46]。③比部郎官五品,隶属于尚书省都官曹。比部郎负责掌管“诏书律令勾检等事[47][47]”,即比部郎掌管着诏书律令,同时负责对国家官吏治绩的考核和钱粮财物的勾检等。比部郎设于曹魏时期,但曹魏时期比部郎职权无明确记载,而南朝比部郎似乎更多是掌管法律,负责对律令的制定和执行,据《陈书》载:“梁代旧律,测囚之法,日一上,起自晡鼓,尽于二更。及比部郎范泉删定律令,以旧法测立时久,非人所堪,分其刻数,日再上”[48][48]。由此比部郎并非一开始就为档案职官,史书上有记载的应该从北朝开始。④考功郎官五品,隶属于尚书省吏部,“掌考第及秀孝贞士等事[49][49]”。即考功郎负责全国的官员选拔和政绩考核诸事,并负责保管这一过程中所产生的文书档案。⑤御正大夫西魏恭帝时置,后周沿用。御正大夫为大冢宰属官,大冢宰“就其职事观察,主要亦系模拟尚书省之制度。如:天官大冢宰总司百官之政,实际相当尚书令、仆射等职”[50][50]。御正大夫参决政务,典掌文书,起草诏令。(2)中书省北朝中书省亦仿南朝,职权与南朝相仿。但由于北朝为少数民族政权,中书省也具有鲜明特点。特别是在魏孝文帝汉化之后,随着中书监、令地位的提升,中书省也逐渐成为北朝行政中的一个重要机构。其首脑中书监令也多为宗室贵族和宠臣拜领。同时中书省职官也逐渐成为清美之选,多为大户所居。中书舍人北朝中书舍人亦“并掌诏诰[51][51]”,并曾一度“总摄中书、门下之事,军国诏命,莫不由之”[52][52],权势一时。但是总体而言,北朝中书舍人权势远不如南朝,原因主要是他们多为汉人,要受到鲜卑贵族的压制。(3)门下省、集书省北朝也设有门下省与集书省,职掌稍有不同。由于北朝重视门下之官,故“多以侍中辅政,则侍中为枢密之任[53][53]”,即北朝门下省职掌较南朝权力更大。但也有学者认为《通典》所述“重门下官”“只能视为因人而成事的异态,而决非制度所使然的常态”,认为“论地位门下省显然不及尚书省的尊崇,论职权侍中亦远在录尚书事和尚书令、仆等尚书省长官之下”[54][54]。但是集书省的地位稍逊南朝,北朝集书省“掌讽议左右,从容献纳……兼以出入王命,位在中书之左[55][55]”。①侍中官三品,秩千石,北齐时侍中岁秩四百匹。北魏时多以侍中辅政,故侍中就成为“枢密之任”,相当于宰相。北齐制官多遵循北魏的规章,侍中置六人,掌献纳、谏正及进御之职,参与诸公论国政。北周设纳言大夫,地位相当于侍中,职权也与侍中相似。②散骑常侍官从三品,北齐时岁秩为三百匹。隶属集书省,“兼出入王命[56][56]”,但北朝散骑常侍、侍郎部负责保管诏命表疏等,地位不及南朝散骑常侍。(4)昭玄寺北魏武帝时设,管理全国僧门事务,对僧人实行系统的国家管理,制发管理僧门文移印牒。北朝诸朝沿用。沙门统初名为道人统,为昭玄寺长官。负责全国僧门事务,“绾摄僧徒[57][57]”。设有大统一人,统一人,都维那三人。还置有功曹、主簿员等,以管诸州郡县沙门曹。可见在地方上也设有僧官机构,即沙门曹,设有州统、郡维那、郡都统、县维那等地方僧官,负责地方僧务。沙门统负责掌管僧人的文移和印牒,印牒相当于今天的身份证,这些印牒必须由国家统一颁发,经都维那或州镇维那审核之后,于中央留存保管。同时,沙门统还管理僧祗户、佛图户、僧祗粟等为沙门效力的劳动者的户籍和田籍。他们依照不同的职称,分任不同的事物,其中僧录掌管僧团的人事,处理僧籍与僧官补任事宜[58][58]。宗正寺卿官三品,秩中二千石,掌管宗室属籍,详定宗室昭穆远近,定期对皇族内人口进行登记编辑造册,并负责保管。宗正寺卿一般由皇室成员担任,“先尽皇室,无则用庶姓”[59][59]。三、魏晋南北朝时期地方档案职官及职掌魏晋南北朝时期地方上大体上推行州郡县制,但各个时期特点又不同。三国时期,由于没有实现国家统一,故曹魏、孙吴和蜀汉都设置了许多的遥领州郡县,对非本辖区的地方进行管理。西晋在推行州郡县制的同时,推行了分封制,各诸侯王握有兵权,形成军府,终酿成“八王之乱”。东晋南朝对北方流民实行了侨郡县管理,即在北方流民的居住地设置侨郡州县,仍以流民在北方的州县名称命之,只在名称前面加“南”以示区别,同时对流民设置白籍,在赋税上给予优待。北朝州郡县设置繁杂累赘,造成十羊九牧的现象。魏晋南北朝时期地方档案职官主要由各州郡县长官的掾属担任,他们多为长官自辟任免的,到后期多为州郡县内望族子弟。

1.曹魏时期地方档案职官及职掌(1)州府档案职官各州以刺史为长官,领兵刺史官四品,不领兵刺史官五品。刺史负责各州的内部事务的处理工作,属官有治中从事、别驾从事、功曹从事、簿曹从事、兵曹从事、郡国从事、文学从事、督邮、主簿、帐下督、书佐和计吏等。这些属官多为刺史自辟,因而他们几乎“没有俸禄或者俸禄很少”[60][60]。其中治中从事、主簿、书佐是最为重要的档案官。治中从事负责总领州中文书事务;主簿直接负责州府中的文书处理、州长官与中央及郡县的公文来往及州中重要事务,并掌管印鉴;记室书佐、诸曹佐掌起草和缮写文书。(2)郡府档案职官各郡以太守为长官,官五品。河南郡太守称尹,官三品。下设有郡丞,官八品。都尉,官五品,负责兵事。司马,官八品。以及功曹掾、五官掾、上计掾、督邮、主簿、朱记、门下书佐等,多者达二百余人。上计掾、主簿、书佐为郡中重要的档案人员,分别负责郡府内外的书信往来、文书保管、命令的上传下达、呈送报表及日常的行政事务。其中上计掾负责户口的登记表报;主簿主管郡中文书处理。(3)县府档案职官大县置令,官六品,秩千石。属官丞一人,官八品;尉二人,官九品。次等县置令,官七品,秩六百石。属官有丞、尉各一人,皆官九品。小县置长,官八品,秩四百三百石。属官丞、尉各一人,官九品。县丞和县府主簿是县府的重要的档案职官,他们负责县府内外的文书、书信的传达保管及信息的汇总和呈报。2.两晋时期地方档案职官及职掌(1)州府档案职官各州以刺史为长官,领兵刺史官四品,不领兵刺史官五品,秩六百石。负责各州的内部事务的处理工作。掾属有治中从事、别驾从事、功曹从事、簿曹从事、兵曹从事、郡国从事、督邮、主簿、帐下督、书佐和计吏等。其中治中从事、主簿、书佐是最为重要的档案官。治中从事,主管众曹文书,并对各曹从事有一定的领导权力;诸曹从事则负责本曹内的文书事务。主簿“录门下众事,省署文书,汉制也。历代至隋皆有[61][61]”。记室令史负责文书的起草和档案的保管。从事、主簿、书佐等这些属官多是刺史辟召的,品级一般在六品以下,俸禄低微,汉时通为百石。魏晋时期,这些官员多为门阀所居,“州大中正、主簿、郡中正、功曹,皆取著姓士族为之”[62][62]。州郡主要档案职官均是如此。(2)郡府档案职官各郡以太守为长官,官五品。下有郡丞,官八品。及功曹掾、五官掾、上计掾、督邮、主簿、朱记、门下书佐等,他们构成了郡府主要档案人员,郡主簿职权与州主簿相似,郡录事参军“晋制,本为公府官,非州郡职也。掌总录众曹文书,举弹善恶[63][63]”。从事史每郡设置一人,负责“督促文书,举非法[64][64]”。他们负责郡辖区内文书的形成、处理和保存,并为太守的行政决策提供有力的信息支持。主簿等这些属官也是太守自辟任免的,“汉魏以来及江左,郡有督邮、主簿,盖录事参军之任也,皆太守自辟除”[65][65]。(3)县府档案职官大县置令,官六品。小县置长,官八品。下设县丞、主簿、录事史、主记室史、门下书佐、议生、小史、循行功曹史、等,数量根据县大小而定。其中县丞、主簿、录事史、主记室史是县府中最为重要的档案官员,他们负责县府内外的文书、书信的传达保管及信息的汇总和呈报。(4)地方军府档案职官两晋时期,为防止出现曹魏时期“内无深根不拔之固,外无磐石宗盟之助”的孤立境况,因此建国初便分封宗室到各地为王,在实行郡县制的同时推行分封制以巩固中央政权。晋允许各王府有军队,这就形成了大大小小的军府。军府诸曹仿尚书曹设置,有录事中郎、度支中郎、三兵中郎等中郎,参军、主簿、记室等。录事中郎辖与文案相关的诸曹,总录诸曹文案,兼事举善弹非也。度支中郎负责度支、户曹等与军国财政户口等相关事务。主簿职权与州郡县中的主簿相同。“军府属吏,在魏晋时尚绝大部分由府主自行板授,入南朝后则一部分由中央政府除拜,一部分由官员个人自行板授”[66][66]。3.南朝时期地方档案职官及职掌(1)州府档案职官各州以刺史为长官,刘宋时刺史,官五品或六品,秩六百石。萧齐因之。萧梁时,刺史官品在三品至五品不等,秩两千石。但南朝“州郡俸禄及杂供给,多随土所处,无有定数”[67][67],即尽管国家对地方官员的俸禄有定数规定,但是“南朝地方官员的实际官俸收入,比朝廷规定的官俸要高很多[68][68]”。下设别驾从事史、治中从事、主簿、西曹从事、祭酒从事、议曹从事等,员额不等。别驾、西曹主吏及选举事,治中主众曹文书事及财谷簿书;主簿录门下众事,省署文书;簿曹书佐一人,主簿书。(2)郡府档案职官各郡以太守为长官,官五品或六品,其俸禄与其所管辖人口有关,陈时,满万户的郡太守秩六百石,不满万户的郡太守秩千石。太守主管郡内各项事务。丞一人,秩六百石。下设有功曹史,主选举;五官掾,主诸曹事;上计掾、史各一人,每年年末向上条陈郡内众事,称为“阶簿”。此外还有主记史、典笔吏等,负责文书的草拟和保管。属官多为太守自行征辟,出身多为寒门或一般士族,俸禄比较低。(3)县府档案职官大县置令,小县置长。官六品县令,秩千石;官七品县令,秩六百石;县长秩五百石。又各有丞一人,官九品。尉一到两人,官九品。还有主簿、书童等,县丞和主簿为县府主要的档案官员,“主簿皆令、长辟除”[69][69],他们负责县府内外的文书信件的接受传达和保管。4.北朝时期地方档案职官及职掌(1)典签北朝典签的主要职责是“掌管文书和监督州府仓库财务出纳[70][70]”,并协助丞相、封君和刺史掌管军政大事。与南朝职权不同,南朝典签不负责文案事务,更多为一种监察身份。因而典签在北朝是州中要职。(2)北朝时期的其他地方档案职官与前朝相仿,主要有主簿、从事、功曹、书佐等,职权没有太大变化。不同的是北朝更重视门第,对这些官员的出身作了严格限制,“州主簿、郡功曹,非四姓不在选[71][71]”。“但取门资,多不择贤良”[72][72]。“四姓”即“制凡三世有三公者曰膏腴,有令、仆者曰华腴,尚书、领、护而上者为甲姓,九卿若方伯者为乙姓,散骑常侍、太中大夫者曰丙姓,吏部正员郎为丁姓[73][73]”,皆高门大姓。这样最大限度的保证了这些少数民族政权对汉人的统治,有利于社会稳定。同时,北魏政府规定地方州郡县官员依户给俸,即根据所领户数颁给俸禄。且俸禄的形式也因王朝不同而不同,大多王朝仍以米粟为俸禄,也有以布匹、绢作为俸禄的,如北齐规定上上州刺史,岁秩八百匹;上上郡太守,岁秩五百匹;上上县,岁秩一百五十匹。有的王朝并不发放俸禄,如北魏初期。并且北朝州郡用人滥杂,民少官多,十羊九牧。四、魏晋南北朝时期的档案职官设置评价

1.魏晋南北朝时期档案职官的设置规律和特点魏晋南北朝时期是一个王事多难、战乱频仍的时代,这就注定了这个时代的各个王朝都没有能力在其统辖时期内建立起完整的统治制度。这些制度都是“由临时措置而逐渐成为习惯的[74][74]”。因而这一时期的各项制度都有着鲜明的时代特色。每一个命运短促的王朝都极力从前朝中吸取有利的经验来巩固自己的统治,又同时根据本朝的热点问题而不得不采取一些特色政治。总的来说,这一时期是我国政治制度转型的一个重要时期,在我国政治史上占有重要的地位。而档案职官建置作为古代政治史中的一个重要的环节自然也不例外。魏晋南北朝时期的档案职官的设置规律和特点是与这一时期的政治态势紧密相连的,主要具有以下几个特点:档案职官仍然以兼职的为主,专职的档案职官主要以下级官吏为主。魏晋南北朝时期的档案职官,如上所述,种类很多,像尚书令、中书监、秘书监、散骑常侍、散骑侍郎、沙门统、侍中等等,但不能否认,档案事务并非这些官员的专职,甚至不能称得上是主要事务。他们很多都是档案兼职官员,只是对本部门本地区形成的文书档案进行必要的保管和收藏整理,有者甚至只是由其下属官员来完成这些事务,如尚书令、中书监令、散骑常侍等,他们本身只是实际利用这些已经形成的、整理好的档案文件,以辅助政治,处理事务。但是这并不意味着这一时期没有专门的档案职官,只是这一时期的档案专职官员主要以下级官吏为主。诸如录事、记室、治中从事及诸曹从事等等,他们一般为属官,品级相对比较低。他们负责形成、记录、整理、保存本部门形成的文书,以为本部门长官作出正确的行政决策和部署。同时他们也充当参谋的角色,根据自己所掌握的档案对长官们的决策提出有利意见。

(2)档案职官的地位逐渐下降,从由高门望族担任逐渐向寒门小吏转移。魏晋南北朝时期是我国古代一个重要的政治转型期,以这一时期为分期,之前主要实行三公九卿制,之后主要实行三省六部制。而这一时期正是三省六部制从萌芽到初成端倪的时期。三省六部制的产生从某种意义上讲,其实也是档案职官地位下降的一个过程。在三国时期,一国的机要基本上还是被尚书省一省把持,但是随着中书省、门下省、秘书省和集书省等机构的设置,尤其是中书省和门下省的异军突起,尚书省职权逐渐被瓜分,其管理政要的角色逐渐淡化,开始成为一个具体的事务办理机构。到两晋时期,中书省已经成了人心所向的凤凰池,政出中书的局面开始形成。但此时还只是由中书省长官们把持着一朝命脉。到了南朝,门下省与集书省继续分权,同时中书省内部的中书舍人开始崛起。中书舍人在南朝一直是由寒门士人担任的,其地位之低不言而喻。中书舍人把控军国机密,天下文簿版籍。这样就逐渐完成了档案职官向寒门士族的转移。2.魏晋南北朝时期档案职官设置的借鉴意义魏晋南北朝时期档案职官的设置具有重大的历史意义,这一时期的档案职官逐渐远离政坛,即从高门望族的向寒门士族转换,“但并不意味着他们在政府这一大系统中就无足轻重”[75][75]。我国古代所言的档案主要是文书档案,它们是行政的依据和凭证,对于保持国家和地区政治、经济、文化、军事等层层面面的制度、决策、规划的一贯性、连续性、科学性都有着重要的作用。魏晋南北朝时期“宰相机构和秘书、咨询机构(门下省和中书省)的发展和完善,为隋唐三省官制的出现准备了条件”[76][76],对后世及今天都有重要的借鉴意义。注重提高官员的素质,而不以门第取人魏晋南北朝时期最重要的管理选拔制度就是九品中正制,虽说在制度起初是有其历史进步意义的,但无法否认的是随着九品中正制的推行,门阀政治却愈加严重,并最终形成了“上品无寒士,下品无高门”的政治现况,这就不利于政治的稳定。而档案职官因相对比较清闲,待遇优厚,而成为高门望族的首选,诸如秘书丞、郎都成为高门的起家之选。这是造成魏晋南北朝时期朝政比较混乱的重要原因。因而隋唐以来,都比较重视档案职官的人品、德品,而不注重其门第,这使得档案职官这个群体的素质大为提高,并对档案的专门化的出现有一定的推动作用。

(2)注重档案的整理、保管和利用文书档案之于乱世的重要性不言而喻,魏晋南北朝各个王朝都非常重视档案的整理、保管和利用。同时各王朝统治者都十分重视档案的编辑利用,晋武帝继位五年,便下诏“自泰始以来大事皆撰录,秘书写副。后有其事,辄宜缀集,以为常”[77][77]。桓玄在兵败中仍“作《起居注》,叙其距义军之事”[78][78]。正由于王朝的重视,这一时期出现了大批史书,《三国志》、《魏书》、《宋书》、《南齐书》、《十六国春秋》等,以及大量的起居注。(3)注重档案载体、书写工具的变革和与时俱进魏晋南北朝以前档案的承载工具主要是竹木简及缣帛,但“简重而帛贵”,这都不利于档案行政。西晋时,中书令荀勖在抄录汲冢竹书时便用二尺黄纸,到东晋元帝时更是以纸代之,这就对行政效率、文书的撰写整理及史书的传抄影响起到了重大影响。随着纸张的推广,毛笔、墨也随之普及,同时对墨的防腐性要求更为严格,这对文书档案的制发保存都起到了积极作用。信息时代的今天,信息的载体也日益多样化,因而我们也必须注重档案载体的与时俱进,多渠道的开发利用档案。

图片查看器1.课程设计目的基于学习的Java知识,用Eclipse和JDK软件编写一个小应用程序,通过此次Java课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse、JCreator等开发工具的运用,拓宽常用类库、数据库、小程序的应用。深刻理解Java语言面向对象设计的原理,运用于实际。将Java程序运用于常用软件的编写。本课程设计GUI图片查看器,它实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。2.设计方案论证2.1设计思路2.1.1设计需求分析随着数字产品渐进人们的生活,网络通信技术、图像处理技术以及多媒体技术的发展,越来越多的用户希望能够对已有的数字图片进行查看并能够实现简单的操作。本图片查看器以其简洁明了易操作的特点实现图片查看的基本功能,从而也就满足了用户的基本要求。2.1.2设计理想框架图1设计框架2.1.3(1)本系统要用到以下的Java编程技术实现的功能:图像显示功能:用户可以显示指定路径的图片,识别多种格式图片,并且在显示图片时用到了双缓冲技术来消除闪烁问题。图像放大、缩小功能:运行程序成功之后,点击“打开”,打开一张图片,如果图片没有百分之百显示,可以点击下方的“缩小”按钮,实现图片缩小功能。放大功能与缩小功能使用方法相同。图像的旋转功能:程序中有右旋、左旋按钮,实现图片的旋转功能,便于欣赏。图像的转换功能:可以查看上一幅或者下一副,可以连续观看多张图片。图像的恢复原始形状:可以将已经需改后不满意图片,恢复到最开始的样子。图像的删除功能:实现删除图片。2.1.4开发环境搭建(1)下载JDK在/technetwork/java/javase/downloads/index.html网址下载JDK,下载好JDK后双击运行,然后根据提示进行安装。bin:存放java可执行文件。如:javac.exe、java.exe等等include:java包含的本地类(如:C语言头文件)lib:包含了java运行库及JDKAPI库src.zip:解压为src,表示java的类库源代码(2)配置环境变量右击【计算机】,选择【属性】,点击【高级系统设置】后,再点击【环境变量】,打开设置环境界面。点击【编辑】,按钮打开如下窗口。在下面窗口添加如下值:变量名:classpath变量值:.;D:\ProgrammingSoftware\JDK7\lib变量名:java_home变量值:D:\ProgrammingSoftware\JDK7变量名:path变量值:;D:\ProgrammingSoftware\JDK7\bin(3)最后点击【开始】菜单下面的【运行】,输入cmd打开DOS窗口,在DOS窗口中输入javac,如果出现如下图的信息,则表示配置jdk成功图1Java安装成功一个简单的实例:publicclassTest{

publicstaticvoidmain(String[]args){

System.out.println("HelloWorld!");

}}运行结果:HelloWorld!(4)下载Eclipse在Eclipse官网下载Eclipse软件,下载之后,解压压缩包,直接打开应用程序,一般工作空间都在C盘目录下,采用默认就可以,点击“OK”,打开工作界面,创建NewJavaProject,在创建NewPackage,之后就可以创建类,建设以工作名称作为类名,我本次所做的小程序类名为jiang。(5)类图结构系统中用到了一些基本类、实现了一些接口。系统所用到的类如图1所示:PicViewerPicViewerActionListenerJpanelJLabelJButtonImageBufferedImageGraphics2DStringJfilechooseAppletJava.awt.*Javax.swing.*Java.io.*Java.applet.*extendsimplementimport图2系统类图2.1.3程序详细设计(1)程序中引用的类①JPanel类程序中定义了三个Jpanel类分别是:pathBar,picContainer,ctrBar。用于图片查看器的整体布局。其中pathBar为顶部路径栏,picContainer为图片显示区域,ctrBar为底部控制栏。②JLabel类程序中定义了类名为pathInfo的JLabel类,用于实现顶部路径栏,底部控制栏按钮的文字显示。③JButton类程序中定义了多个JButton类:openbtn,prebtn,nextbtn,zoominbtn,zoomoutbtn,oripicbtn,angleleftbtn,anglerightbtn,exitbtn,deletebtn,sav;为查看器的按钮。④Image类程序中定义了名为pic的Image类用于对被查看的图片的操作。⑤BufferedImage类此类为用于显示的缓冲区图像。在对图像进行操作前,都先将图片读进预设的缓冲区,然后再显示在用户前端,这样虽然速度慢了点,但很好的消除了图片闪烁效果。⑥Graphics2D类此类与上面的BufferedImage类共同作用,通过运用双缓冲技术很好的消除屏闪问题。⑦String类程序中运用了三个不同的String类,从而实现了需要查看的图片的路径的操作,并且在启动图片查看器时,图片的路径能够在路径栏显示出来。同时还设置了String数组用于存储用户选定的目录下所有指定格式的图片,这样可以实现循环浏览图片等操作。(2)程序的构造方法及其实现因为图片查看器可以实现对图片不同的操作,程序中构造了十多个方法以达到其目的。各构造方法相互联系共同完成图片查看器的各项功能。各个方法描述如下:①publicvoidinit()本方法实现了对图片查看器的界面的整体布局及按钮的初始化。对页面的总体布局采用了以下主要代码进行实现:setLayout(newBorderLayout());add(pathBar,BorderLayout.NORTH);add(picContainer,BorderLayout.CENTER);add(ctrBar,BorderLayout.SOUTH);resize(640,400);设置顶部路径栏,及其文字显示;代码如pathBar=newJPanel();pathBar.setLayout(newBorderLayout());pathInfo.setText("图片查看器");pathBar.add(pathInfo);同时对图片显示区域,底部的控制栏的设置也运用了相似的代码进行实现,在此就不再重复。各按钮除了“打开”一按钮外,其他的各按钮均设置为false。这是因为只有“打开”图片后才能进行以下的像循环浏览,旋转,删除等操作。具体方法的实现见附件。②publicvoidactionPerformed(ActionEvent)在本方法中主要实现了用户对底部控制栏各按钮的点击后,图片查看器进行的相对应的操作反应。方法中一开始用JButtonclick=(JButton)e.getSource();获取按键源,然后根据click与程序设定的已知的类进行比较决定进行相应的反应。if(click==openbtn);if(click==prebtn&&pic!=null);等一系列进行判断后,进行或是打开文件open()方法的调用;或是pre()方法的调用;其他各操作也大同小异,在此就不再赘述。方法的详细代码见附件。③publicvoidopen()该方法实现了对用户选定的文件路径下的后缀为.jpg的图片文件的打开操作。同时能够对该路径下的一切符合条件的文件进行跟踪处理。方法中的核心在于一个过滤操作:FileNameExtensionFilterfilter=newFileNameExtensionFilter("*.JPG","jpg");这样就能实现.jpg文件的浏览了。在选定了图片后,相应的按钮值应该被赋值为ture,以便进行其他的操作。若没有选定图片则显示“没有选择图片”。④publicvoidsave()throwsIOException该方法是为了满足用户希望对图片进行另外存储的操作,通过用户自己的选择重新选定图片的存储路径。详细实现见附件中代码。⑤publicvoidpre()及publicvoidnext()Pre与next方法实现了对当前图片的上一张下一张的浏览。因为在第一次打开文件时就将该路径下所有符合要求的图片存储在String[]pics中。通过if(i==0){i=pics.length-1;}else{i--;}其中i为当前的图片位置数。通过dir=path+"\\"+pics[i];获得文件的路径,然后调用loadImage(dir);此方法将在后面介绍;与上面的方法相对应的是此方法实现了对当前图片下一张的浏览,实现原理与上相同,if(i==pics.length-1){i=0;}else{i++;}通过调用loadImage(dir);一方法实现。⑥publicvoidpicTrans()如果bufImage为空则直接返回,之后进行过滤图像操作,2D仿射变换,设置仿射变换的比例因子transform.setToScale(scaleX,scaleY);创建仿射变换操作对象,过滤图像,将目标图像存在filteredBufImage中,然后显示。⑦publicvoidzoomin()此方法实现了对当前的图片进行按设置比例缩小操作。在进行缩小操作前,先对图片的大小进行判断,看是否已经缩小到最小,若最小则显示提示信息“已经缩至最小!”;否则进行缩小操作。在此过程中调用了picTrans()方法,以及repaint();重绘组件的方法。⑧publicvoidoripic()及publicvoiddelete()方法实现了将放大或缩小后的图片大小还原的操作。同时也调用了picTrans()方法,以及repaint();重绘组件的方法。具体的picTrans()方法将在下面详细描述。此方法具体实现见附件;publicvoiddelete()方法将图片彻底删除,删除后图片彻底被粉碎,回收站里面都不能找到。因此要慎用此按钮。⑨publicvoidangleleft()及publicvoidangleright()方法每次对图片进行45°的向左向右的旋转操作。radius+=-Math.PI/2;用以控制,而这些操作后,每次都应oripicbtn.setEnabled(true),也就是要将还原按钮赋值为真。⑩publicvoidloadImage(StringfileName)及publicvoidexit()前一个方法通过增加图像到加载器中,创建原始缓冲区图像,创建bufImage的图形环境:bufImageG=bufImage.createGraphics();传输源图像数据到缓冲区图像中一些列的操作,对图片进行了加载操作;publicvoidexit()方法是退出查看器的方法。3.设计结果与分析3.1系统测试使用eclipse运行程序时,会出现applet小程序的界面。并显示程序已启动。显示如图3:图3程序开始时的界面单击“打开”按钮后的效果图如图4:图4选择图片文件选择“打开”,选择要打开的图片后的效果图如图5:图4打开文件夹中的图片多次单击“缩小”按钮后的效果图如图6:图6图片缩小显示单击“左旋”按钮后的效果图如图7:图7图片旋转显示图8图片放大显示3.2遇到的问题和解决方法在用JAVA编写程序时,我遇到了很多困难,对很多的接口,类,方法都不是很熟悉,只好采用查看API文档,一个一个进行对照学习,同时也上网查看了有关图片查看器的相关描述,还向同学请教了,翻阅了相关的书籍。尤其是因为有些方法需要使用JDK1.7才行,所以在学校网络机房一开始不能运行,在安装了1.7版本后运行正常了。还可以应用Eclipse软件解决此问题,另外文件在打开时会有严重的频闪问题,在重写了publicvoidupdate(Graphicsg){this.paint(g);}后解决了。4.设计体会在这次的面向对象程序设计课程设计中,我进一步熟悉了上一学期学习的JAVA语言中的包,类,方法:导入哪些包,继承哪些类可以实现什么方法等。深刻感受到了面向对象语言中类库的强大功能。但是由于自己掌握的知识有限,图片查看器的功能没有做到尽善尽美,尤其是删除操作,删除掉以后就没了,在回收站也找不到。还有就是单击“保存”按钮后似乎就不能进行其他操作,但这样的情况或有或无。通过这次的课程设计,我懂得了要充分利用网络资源查找资料同时要多向同学请教,大家互相讨论进步得会很快。通过几天的努力,这次课程设计圆满的结束了,在这个过程中,我收获了很多的知识,同时也非常感谢杭志老师帮助与指导。在以后的学习中,我会更加努力的学好专业知识,并将所学知识用于实践当中去,以便牢固掌握知识。5.参考文献[1]张铁成.Java程序设计课程教学改革的探索与实践[J].职业,2015(23):38-40.[2]刘艳秋,

王国春,

彭馨仪.

Java程序设计课程分层次教学模式的研究与实践[J].

信息化建设,

2015(06).[3]尉哲明,冀素琴.基于Java的综合课程设计研究与实践[J].计算机教育,2015(03).[4]田小玲.JAVA程序设计课程资源建设与探索[J].软件导刊:教育技术,2015(10).6.附录:packagejiang; importjava.awt.*; importjava.awt.event.*; importjava.awt.geom.*; importjava.awt.image.*; importjavax.swing.*; importjavax.swing.filechooser.*; importjava.io.*; importjava.applet.*; publicclassPicViewextendsAppletimplementsActionListener{ JPanelpathBar,picContainer,ctrBar; JLabelpathInfo; JButtonopenbtn,prebtn,nextbtn,zoominbtn,zoomoutbtn,oripicbtn,angleleftbtn, anglerightbtn,exitbtn,deletebtn,savebtn; Imagepic;//查看的图片 BufferedImagebufImage;//用于显示的缓冲区图像 BufferedImageoriBufImage;//原始缓冲区图像 Graphics2DbufImageG;//缓冲区图像的图形环境 Stringpath,filename,dir;//需要查看图片的路径 String[]pics;//目录下所有指定格式的图片 intpicWidth,picHeight;//图片大小 inti=0; finaldoubleZOOM_PERCENT=0.15;//每次放大和缩小的倍率 finalStringFILE_TYPE=".jpg"; booleanhasPic,isangled; doublescaleX;//图像水平方向的缩放因子 doublescaleY;//图像竖直方向的缩放因子 doubleradius;//旋转角度 FilterfilterJpg; publicvoidinit(){ //顶部路径栏 pathBar=newJPanel(); pathBar.setLayout(newBorderLayout()); pathInfo=newJLabel(); pathInfo.setText("图片查看器"); pathBar.add(pathInfo); //图片显示区域 picContainer=newJPanel(); picContainer.setBackground(Color.LIGHT_GRAY); //底部控制栏 ctrBar=newJPanel(); openbtn=newJButton("打开"); openbtn.addActionListener(this); savebtn=newJButton("保存"); savebtn.addActionListener(this); prebtn=newJButton("上一幅"); prebtn.addActionListener(this); nextbtn=newJButton("下一幅"); nextbtn.addActionListener(this); zoominbtn=newJButton("放大"); zoominbtn.addActionListener(this); zoomoutbtn=newJButton("缩小"); zoomoutbtn.addActionListener(this); oripicbtn=newJButton("原始"); oripicbtn.addActionListener(this); angleleftbtn=newJButton("左旋"); angleleftbtn.addActionListener(this); anglerightbtn=newJButton("右旋"); anglerightbtn.addActionListener(this); deletebtn=newJButton("删除"); deletebtn.addActionListener(this); exitbtn=newJButton("退出"); exitbtn.addActionListener(this); ctrBar.add(openbtn); ctrBar.add(zoominbtn); ctrBar.add(zoomoutbtn); ctrBar.add(oripicbtn); ctrBar.add(prebtn); ctrBar.add(nextbtn); ctrBar.add(angleleftbtn); ctrBar.add(anglerightbtn); ctrBar.add(deletebtn); ctrBar.add(savebtn); ctrBar.add(exitbtn); //界面总布局 setLayout(newBorderLayout()); add(pathBar,BorderLayout.NORTH); add(picContainer,BorderLayout.CENTER); add(ctrBar,BorderLayout.SOUTH); resize(640,480); scaleX=1.0; scaleY=1.0; radius=0.0; hasPic=false; isangled=false; dir=""; prebtn.setEnabled(false); nextbtn.setEnabled(false); zoominbtn.setEnabled(false); zoomoutbtn.setEnabled(false); angleleftbtn.setEnabled(false); anglerightbtn.setEnabled(false); oripicbtn.setEnabled(false); deletebtn.setEnabled(false); savebtn.setEnabled(false); } publicvoidactionPerformed(ActionEvente){ JButtonclick=(JButton)e.getSource();//获取按键源 if(click==openbtn){ open(); } if(click==prebtn&&pic!=null){ pre(); } if(click==nextbtn&&pic!=null){ next(); } if(click==zoominbtn&&pic!=null){ pathInfo.setForeground(Color.BLACK); pathInfo.setText("放大图片..."); zoomin(); } if(click==zoomoutbtn&&pic!=null){ pathInfo.setForeground(Color.BLACK); pathInfo.setText("缩小图片..."); zoomout(); } if(click==oripicbtn&&pic!=null){ oripic(); } if(click==angleleftbtn&&pic!=null){ angleleft(); } if(click==anglerightbtn&&pic!=null){ angleright(); } if(click==exitbtn){ exit(); } if(click==deletebtn&&pic!=null) { pathInfo.setForeground(Color.BLACK); pathInfo.setText("删除图片"); delete(); } if(click==savebtn&&pic!=null) { pathInfo.setForeground(Color.BLACK); pathInfo.setText("复制图片"); try { save(); }catch(Exceptionee) {} } } //line1,打开需要查看的图片文件 publicvoidopen(){ JButtonmsg=newJButton(); JFileChooserchooser=newJFileChooser(); //只显示文件夹和jpg格式的文件 FileNameExtensionFilterfilter=newFileNameExtensionFilter("*.JPG","jpg");//建立过滤器,只显示jpg chooser.setFileFilter(filter); chooser.setCurrentDirectory(newFile("")); intreturnVal=chooser.showOpenDialog(msg); //根据返回值判断是否选择了文件 if(returnVal==JFileChooser.APPROVE_OPTION){ //获取文件名 filename=chooser.getSelectedFile().getName(); //获取文件路径 path=chooser.getCurrentDirectory().getPath(); //获取文件路径下所有jpg文件 filterJpg=newFilter(FILE_TYPE); Filefile=newFile(path); pics=file.list(); pics=file.list(filterJpg); //跟踪选中的图片 for(intj=0;j<pics.length;j++) if(pics[j].equalsIgnoreCase(filename)) { i=j; break; } dir=path+"\\"+filename; hasPic=true; loadImage(dir); pathInfo.setForeground(Color.BLACK); pathInfo.setText(path+"\\"+filename); prebtn.setEnabled(true); nextbtn.setEnabled(true); zoominbtn.setEnabled(true); zoomoutbtn.setEnabled(true); angleleftbtn.setEnabled(true); anglerightbtn.setEnabled(true); deletebtn.setEnabled(true); savebtn.setEnabled(true); }else{ hasPic=false; pathInfo.setForeground(Color.RED); pathInfo.setText("没有选择文件!"); } } //保存文件 publicvoidsave()throwsIOException{ JButtonmsgsave=newJButton(); JFileChooserchooser=newJFileChooser(); //只显示文件夹和jpg格式的文件 FileNameExtensionFilterfilter=newFileNameExtensionFilter( "*.JPG","jpg");//建立过滤器,只显示jpg chooser.setFileFilter(filter); Filefin=newFile(path+"\\"+pics[i]); Filef=newFile(""+"\\"+pics[i]); chooser.setSelectedFile(f); intreturnVal=chooser.showSaveDialog(msgsave); //根据返回值判断是否选择了文件路

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论