java swing 組織機構_課內資源 - 基于Java Swing的小型社團成員管理系統

一、需求分析

1.1 個人信息

學號、姓名、性別、年級、系別、專業、出生日期、聯系方式、個性簽名、地址、照片。

6688e326f55dd3ba069bfc1958d72f41.png

1.2 基本功能要求管理員信息管理

登錄、注銷功能

修改密碼功能

部落成員信息管理

添加成員

刪除成員

修改成員信息

按條件查找篩選成員

2c79b5755a7513ee303f1db5a6607b63.png

1.3 高級特性管理員權限管理

成員信息包含照片

連接數據庫性能的優化,比如:Connection

二、詳細設計

2.1 數據庫設計字段名

字段描述

數據類型

備注

psw

密碼

nvarchar(30)

不為空

idNumber

學號

char(9)

主鍵

name

姓名

nvarchar(10)

不為空

sex

性別

char(2)

不為空

grade

年級

nvarchar(10)

不為空

dept

性別

nvarchar(30)

不為空

major

專業

nvarchar(30)

不為空

iden

身份

nvarchar(20)

不為空

born

出生日期

datetime

phone

聯系方式

char(11)

pSignature

個性簽名

nvarchar(50)

pAddress

地址

nvarchar(50)

picture

照片

nvarchar(150)

sql建表語句

create tablePersonInfo(

psw nvarchar(30)notnull,

idNumberchar(9)notnullprimary key,

name nvarchar(10)notnull,

sexchar(2)notnull,

grade nvarchar(10)notnull,

dept nvarchar(30)notnull,

major nvarchar(30)notnull,

iden nvarchar(20)notnull,

born datetimenull,

phonechar(11)null,

pSignature nvarchar(50)null,

pAddress nvarchar(50)null,

picture nvarchar(150)null

)

2.2 界面設計

登陸界面

a4d407eb0c894524c7c9c19d753d308a.png

主界面

3de0b1e5e2830c3ce02ac766cd4e2dfa.png

修改密碼

aa0d09d3b169665ac6f17d70ec25a282.png

查詢信息

e113e6c4a64cf0aaab10bbb7d5610123.png

修改信息

9e23c63132482a7d0cc699b19558947a.png

刪除信息

df3ab2396c4678124b3ba8abbe1e61ee.png

2.3 分 包

2.3.1 視圖層包View

9b35aa00970a0170482eb0abd663b998.png

2.3.2 控制層包Control

6c594a87712f3450f7556bf5f5192a17.png

2.3.3 模型層包Model

39b5297b440301d43f545d519e054d9a.png

2.4 分類

2.4.1 視圖層類LoginView.java登錄界面設計類

InfoManagerView.java信息管理系統主界面設計類

InfoPanel.java信息面板設計類

InfoSelectPanel.java查詢信息面板設計類

InfoInsertPanel.java添加信息面板設計類

InfoUpdatePanel.java修改信息面板設計類

InfoDelPanel.java刪除信息面板設計類

UpdatePasswordPanel.java修改密碼面板設計類

2.4.2 控制層類InfoManager_01.java信息管理系統主類

LoginActEvents.java登錄界面動作事件類

InfoManagerActEvents.java信息管理系統主界面動作事件類

InfoSelActEvents.java查詢信息面板動作事件類

InfoInsActEvents.java添加信息面板動作事件類

InfoUpdActEvents.java修改信息面板動作事件類

InfoDelActEvents.java刪除信息面板動作事件類

UpdPswActEvents.java修改密碼面板動作事件類

ListSelEvents.java列表框選項事件類

2.4.3 模型層類Constants.java sql server數據庫連接信息

DBUtil.java連接數據庫操作類

DaoPattern.java操作數據庫信息功能類(底層模型類)

InfoSelect.Java查詢數據庫信息類(業務邏輯處理類)

InfoUpdate.java更新數據庫信息類(業務邏輯處理類)

三、開發實現

3.1 開發說明開發環境:eclipse

數據庫:sql server 2008

項目UI界面使用eclipse的windowBuilder插件來設計

使用JDBC方式連接數據庫

信息管理系統所涉及到的照片信息的處理,在項目路徑下開一個文件夾picture,用來存儲成員的照片信息,而在數據庫中存儲的是對應照片的路徑。

使用mvc模式,按照功能和類型分類分包,使結構清晰。

提高系統安全性,系統要登錄成功才能操作,對數據的增刪改只有指定管理員才可以操作,以防止其他使用者隨意更改數據,保證數據的安全性。

程序框架圖

26b4be0bedaf7f6751c9e0104c999d1b.png

3.2 功能實現

3.2.1 數據庫操作方面(對數據庫操作即是crud)

將JDBC技術所需使用的數據庫連接信息(數據庫驅動程序,URL,用戶名,密碼等)封裝成一個類,方便項目在不同數據庫下使用時進行數據庫信息修改。

設計一個操作數據庫的模型類DaoPattern.java,里面是操作數據庫信息的底層模型,包含兩個方法,更新(包含增刪改)數據庫中的信息,和查詢數據庫中的信息,其中查詢數據庫信息返回的是結果集。這兩個方法不提供具體的增刪改查的sql語句,反而是把這些功能交到數據庫業務邏輯層去實現。

設計操作數據庫的業務邏輯類(InfoUpdate.java;InfoSelect.Java),這些類根據對數據庫信息的不同操作而提供不同的sql語句來操作數據庫。

對數據庫信息的查詢,盡量避免使用*查詢所有信息而減慢查詢的相應速度。

3.2.2 照片信息處理方面

在項目路徑下開一個文件夾picture,用來存儲成員的照片,而數據庫中存儲的是對應照片的路徑。

添加/修改照片的處理:

點擊選擇照片按鈕時,彈出打開文件選擇對話框,此打開文件選擇對話框設置文件過濾器,顯示圖片文件

對所選擇的圖片文件,還要做處理,處理所選擇的文件是否存在

圖片文件存在:還要做處理,處理項目路徑下picture文件夾是否存在與當前圖片文件同名的文件不存在同名文件:將所選擇的圖片復制到picture文件夾下,并獲取圖片路徑,將路徑添加到數據庫中,并在標簽上顯示該照片

存在同名文件:提示用戶所選文件不可用,要么更改所選文件的名稱,要么另選文件

查詢照片的處理:

從數據庫中取出照片的路徑,根據此路徑創建圖標圖像對象:public ImageIcon(String filename) 根據指定的文件創建一個 ImageIcon

設置此圖標圖像的縮放,照片以適當大小顯示在相應位置

將照片顯示在標簽上

3.2.3 登錄模塊輸入學號和密碼,選擇登錄的身份,點擊“登錄”按鈕

初始學號是:111111111,初始密碼:123456,初始身份:管理員

若學號為空,彈出提示對話框,提示“學號不能為空”

若學號不為空:但輸入的學號不存在,提示“信息不存在”

而若是輸入的信息不正確,則提示“您的信息有誤!請重新輸入”

若信息無誤,釋放登錄界面,同時對用戶權限進行設置;進入主界面,并顯示當前使用者信息

若登錄的是管理員,將“修改密碼”, “添加成員信息”,“刪除成員信息”,“修改成員信息”等菜單項設置為可編輯,允許用戶操作

而若登錄的是普通成員,則無法進行 修改密碼 和 增刪改信息操作

“重置”按鈕:所以內容還原成默認

3.2.4 修改密碼模塊此模塊只有管理員才可操作

若選擇的是“設置”菜單下的“修改密碼”菜單項,則進入修改密碼界面

輸入要修改密碼的學號,設置新密碼,并再次輸入密碼確認。

點擊“修改”按鈕:

如果新密碼與確認密碼不匹配,彈出提示對話框,提示“請準確輸入您要修改的密碼”

如果兩個密碼匹配:而要修改密碼的學號不存在,彈出提示對話框提示“該學號不存在”

而若存在,會返回是否成功的信息。如果修改成功,彈出提示對話框提示“密碼修改成功”,如果不成功,則提示“密碼修改失敗,請確認輸入的信息是否正確!”

若要繼續修改,點擊“重置”按鈕

點擊“重置”按鈕:清空文本框內容

3.2.5 查詢成員信息模塊

若選擇的是“操作”菜單下的“查詢成員信息”菜單項,有多種查詢方式。

選擇查詢條件:年級、性別、系別;點擊“泛查找”按鈕

根據條件到數據庫中查詢信息,返回滿足條件的學號如果集合為空,則沒有查詢結果,彈出對話框提示“找不到信息”

如果集合不為空,則有查詢結果,在查詢模板左側的列表框中顯示查詢后的學號,并記錄滿足條件的學號共有幾條

根據學號查詢:

輸入所要查詢的學號,點擊“根據學號查找”按鈕

或在列表框中選擇要查詢的學號

如果是輸入學號查詢,還有防止輸入的學號為空的情況。

獲取輸入或選中的學號,到數據庫中去查詢,返回查詢后的結果集如果結果集為空:沒有查詢到任何信息。彈出提示對話框提示“該學號不存在,請確認后重新輸入!”

如果結果集不為空:從結果集中取出信息顯示在界面的相應位置。特別地,對于照片的處理,根據獲取的照片路徑創建圖標圖像對象,同時為了照片以適當的大小顯示,設置了圖像的縮放,然后把照片顯示在對應標簽上

3.2.6 添加成員信息模塊填寫成員基本信息,如果需要上傳照片,點擊“選擇圖片”按鈕,將會彈出打開文件選擇對話框,此文件選擇器設置了文件過濾器(打開圖片文件),并對于 所要打開的文件,先判斷其在當前路徑下是否存在。在存在的情況下,將其文件復制到項目路徑下的picture文件夾中,但前提也要判斷改文件夾是否存在同名文件。復制好后獲取該文件在項目路徑下的路徑,存入到數據庫中

點擊“錄入”按鈕:錄入 信息前,對于數據庫中某些不允許為空的字段,先強制用戶必須填寫;然后對于所錄入的學號,先到數據庫中查詢該學號是否已經存在。在不存在的情況 下,將填寫的信息錄入數據庫中,并返回操作是否成功的提示

點擊“重置”按鈕:將內容清空還原成默認

3.2.7 修改成員信息模塊用戶要修改信息,必須先輸入要修改信息的學號

點擊“搜索”按鈕:但前提要保證學號不為空,然后根據用戶輸入的學號,到數據庫中去查詢該學號成員的基本信息,返回結果集

如果結果集為空,彈出對話框提示“該學號不存在!請確認后重新輸入!”

如果結果集不為空,將查詢到的信息顯示出來。用戶就可以根據需要修改某些信息,對于照片的修改,與照片添加的操作類似,但有不同的一點是,一旦更換了照片,那么之前提供的照片要刪除掉

點擊“錄入修改”按鈕:獲取用戶修改后的信息,到數據庫中去修改,并返回是否修改成功的提示信息

點擊“重置”按鈕:將全部內容清空還原默認

3.2.8 刪除成員信息模塊用戶要刪除信息,必須先輸入要刪除信息的學號

點擊“搜索”按鈕:但前提要保證學號不為空,然后根據用戶輸入的學號,到數據庫中去查詢該學號成員的基本信息,返回結果集

如果結果集為空,彈出對話框提示“該學號不存在!請確認后重新輸入!”

如果結果集不為空,將查詢到的信息顯示出來。

點擊“刪除”按鈕:為防止用戶使用時由于某些不小心操作而刪除數據,提高系統的安全性。所以在點擊刪除按鈕的時候,還要彈出確認對話框,咨詢用戶是否刪除。用戶確認刪除后,才到數據庫中去刪除信息,并返回刪除是否成功的提示

點擊“重置”按鈕:文本內容清空還原默認

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541889.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541889.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541889.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java System類loadLibrary()方法與示例

系統類loadLibrary()方法 (System class loadLibrary() method) loadLibrary() method is available in java.lang package. loadLibrary()方法在java.lang包中可用。 loadLibrary() method is used to load the library with the given parameter named library_name(library …

CCF201509-2 日期計算(100分)

試題編號: 201509-2 試題名稱: 日期計算 時間限制: 1.0s 內存限制: 256.0MB 問題描述: 問題描述給定一個年份y和一個整數d,問這一年的第d天是幾月幾日?注意閏年的2月有29天。滿足下面條件之一的…

Java StringBuilder trimToSize()方法與示例

StringBuilder類trimToSize()方法 (StringBuilder Class trimToSize() method) trimToSize() method is available in java.lang package. trimToSize()方法在java.lang包中可用。 trimToSize() method is used to minimize storage used for the characters (i.e. if the init…

第一百四十一節,JavaScript,封裝庫--DOM加載

JavaScript,封裝庫--DOM加載 DOM加載,跨瀏覽器封裝DOM加載,當網頁文檔結構加載完畢后執行函數,不等待圖片音頻視頻等文件加載完畢 /** dom_jia_zai()函數,DOM頁面加載函數,等待頁面結構加載完畢后就執行函數…

java 使用接口便于維護程序_Java初學——面向對象接口的應用

一、接口1.什么是接口接口是比抽象類更抽象的定義,接口不可以被實例化 實現類必須實現接口的所有方法 實現類可以實現多個接口 、多個接口使用逗號隔開 接口中的變量都是靜態常量(public static final) 程序設計時面向接口的約定而不考慮具體實現 。2.為什么使用接口…

Java ResourceBundle getLocale()方法與示例

ResourceBundle類的getLocale()方法 (ResourceBundle Class getLocale() method) getLocale() method is available in java.util package. getLocale()方法在java.util包中可用。 getLocale() method is used to get the locale of this ResourceBundle. getLocale()方法用于獲…

centos下安裝pip時失敗:

2019獨角獸企業重金招聘Python工程師標準>>> [rootwfm ~]# yum -y install pip Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua…

java 標準輸入流 關閉 打開_java輸出流關流疑問,以下這個程序的in和out是否要關閉?...

/**標準IOjava.lang.System類中提供以下三個靜態常量:staticfinalInputStreamin功能:“標準”輸入流,流已打開并準備提供輸入數據。通常,此流對應于鍵盤輸入或者由主機環境或用戶指.../**標準IOjava.lang.System類中提供以下三個靜…

Java RandomAccessFile readUTF()方法及示例

RandomAccessFile類readUTF()方法 (RandomAccessFile Class readUTF() method) readUTF() method is available in java.io package. readUTF()方法在java.io包中可用。 readUTF() method is used to read this RandomAccessFile as a string. readUTF()方法用于以字符串形式讀…

LCD顯示屏原理與應用

1、什么是LCD? (1)LCD(Liquid Crystal Display)俗稱液晶.(2)液晶是一種材料,液晶這種材料具有一種特點:可以在電信號的驅動下液晶分子進行旋轉,旋轉時會影響透光性,因此我們可以在整個液晶面板后面用白光照&#xff08…

Java PipedInputStream connect()方法與示例

PipedInputStream類的connect()方法 (PipedInputStream Class connect() method) connect() method is available in java.io package. connect()方法在java.io包中可用。 connect() method is used to cause this PipedInputStream to be connected to the given PipedOutputS…

java寫手機游戲_如何將自己編寫的JAVA小游戲寫到手機里?

2019-06-19怎么用java編寫獲取星期幾的程序&#xff1f;import java。util。*; public class WeekDay { Calendar date Calendar。getInstance(); private int getMaxDate(int moth){ moth moth -1; if(moth > 12 || moth < 0){ System。 out。println("輸入月份錯…

Java PipedInputStream receive()方法與示例

PipedInputStream類的receive()方法 (PipedInputStream Class receive() method) receive() method is available in java.io package. receive()方法在java.io包中可用。 receive() method is used to receive a byte of content and it will block when no more input remain…

java去除重復對象_Java19-2 集合類去除重復對象

List獨有方法&#xff1a;import java.util.ArrayList;import java.util.List;public class ListTest2 {public static void main(String[] args) {List listnew ArrayList();list.add("abc1");list.add("abc2");list.add("abc1");list.add(&quo…

SSM框架整合中遇到重復的問題Ambiguous handler methods mapped for HTTP

嚴重: Servlet.service() for servlet [spring] in context with path [/ssmDemo] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path /init.do: {public java.lang.String …

Java ObjectStreamClass lookup()方法與示例

ObjectStreamClass類lookup()方法 (ObjectStreamClass Class lookup() method) lookup() method is available in java.io package. lookup()方法在java.io包中可用。 lookup() method is used to lookup the descriptor for a class that can be serialized. lookup()方法用于…

java default parameter_JAVA菜鳥入門(7) default parameter , float/double vs BigDecimal

1 java的允許函數的默認參數嗎?java不支持類似C那樣&#xff0c;為函數設定默認參數&#xff0c;所以需要做的事情是&#xff0c;自己用函數重載的方式進行模擬。如下public class FFOverload {public String getName(String givenName,String familyName){return givenName&…

gitlab修改默認端口

部署gitlab的時候&#xff0c;一啟動&#xff0c;發現80和8080端口已經被占用&#xff0c;無奈&#xff0c;只得先將監聽80端口的nginx和監聽8080端口的jenkins停止。這會兒有空&#xff0c;琢磨一下如何修改gitlab的默認端口。 修改主要分為兩部分&#xff0c;一部分是gitlab總…

Java ObjectOutputStream reset()方法與示例

ObjectOutputStream類reset()方法 (ObjectOutputStream Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset this stream. It reset the stream to the position marked most recently. …

Excel 自定義關閉按鈕

遇到過這樣一個需求&#xff0c;是在excel關閉的時候&#xff0c;不要excel本身的保存窗口&#xff0c;只用自定義的. 這個的需要第一&#xff0c;是點擊關閉時候觸發&#xff0c; 第二&#xff1b;觸發后&#xff0c;不能還是彈出那個窗口 第三&#xff1a;取消后&#xff0c;…