JAVA GUI +JDBC 實現(xiàn)超市管理系統(tǒng)完整版

需求:第一個窗口為歡迎 界面 鱼填,點擊按鈕 擒贸,會進入管理系統(tǒng)界面


開始界面


進入管理界面

思路:1.用可視化工具 橘沥,首先實現(xiàn)圖形界面 窗轩,然后實現(xiàn)每個組件的具體功能 ,

2. 每一次執(zhí)行操作之后座咆,對顯示水果列表的組件進行刷新痢艺。

刷新功能


private int update_UI(JPanel panel, Statement stmt, JTextPane textPane, JTextPane textPane_1,

JTextPane textPane_2, JTextPane textPane_3) throws SQLException {

panel.updateUI();//首先將其全部組件進行刷新

panel.add(textPane);

panel.add(textPane_1);

panel.add(textPane_2);

panel.add(textPane_3);//添加上基礎的四個組件

Statement stmt1=stmt;//獲取操作數(shù)據庫的權限

String sql="select * from goods_info";

ResultSet rs=stmt1.executeQuery(sql);//執(zhí)行sql語句,這條語句會返回一個Set集合介陶,里面包含要獲取的信息

int pos=21;

while(rs.next()) {//對其進行迭代

String name=rs.getString("name");

int price=rs.getInt("price");

int id=rs.getInt("id");

String unit=rs.getString("unit");//每一次獲取到完整的四個數(shù)據

System.out.println(id+name+price+"/"+"unit");

JTextPane t1=new JTextPane();//創(chuàng)建臨時按鈕堤舒,設置文本,設置不可編輯

t1.setText(id+"");//填充數(shù)值

t1.setEditable(false);//設置不可被改動

t1.setFont(new Font("宋體", Font.BOLD, 12));

t1.setBorder(BorderFactory.createEtchedBorder());//設置邊框

JTextPane t2=new JTextPane();

t2.setText(name);

t2.setEditable(false);

t2.setFont(new Font("宋體", Font.BOLD, 12));

t2.setBorder(BorderFactory.createEtchedBorder());

JTextPane t3=new JTextPane();

t3.setText(price+"");

t3.setEditable(false);

t3.setFont(new Font("宋體", Font.BOLD, 12));

t3.setBorder(BorderFactory.createEtchedBorder());

JTextPane t4=new JTextPane();

t4.setText(unit+"");

t4.setEditable(false);

t4.setFont(new Font("宋體", Font.BOLD, 12));

t4.setBorder(BorderFactory.createEtchedBorder());

t1.setBounds(0,pos, 100, 20);//X Y? WIDTH HEIGH

panel.add(t1);

t2.setBounds(100,pos, 100, 20);

panel.add(t2);

t3.setBounds(200,pos, 100, 20);

panel.add(t3);

t4.setBounds(300,pos, 100, 20);

panel.add(t4);

pos+=20;

}

return pos-20;

}

刪除功能:

添加功能:

btnNewButton.addMouseListener(new MouseAdapter() {//提交按鈕事件哺呜,比較特殊舌缤,因為不需要刷新,只要在末尾添加即可某残。国撵。大概吧

@Override

public void mouseClicked(MouseEvent e) {

/*

* 當點擊提交按鈕時, 先判斷前四個按鈕 是否都有文本玻墅,

* 如果含有文本介牙,那么就創(chuàng)建 四個不可改變的textPane

* 給它們對應賦值以后,放到主顯示框上

*/

//獲取數(shù)據

String id=textPane1.getText();

String name=textPane2.getText();

String price=textPane3.getText();

String danwei=textPane4.getText();

//判斷是否為空值

if(!id.isEmpty()&&!name.isEmpty()&&!price.isEmpty()&&!danwei.isEmpty()) {//必須用是否為空判斷 ==澳厢?

y_pos+=20;

System.out.println(id+"---"+name+"---"+price+"---"+danwei);

//輸入正確环础,處理數(shù)據1、清空 輸入框的數(shù)據 2剩拢、將數(shù)據存儲到mysql 中3线得、將數(shù)據上傳

textPane1.setText(null);

? ? textPane2.setText(null);

textPane3.setText(null);

textPane4.setText(null);

JTextPane t1=new JTextPane();//創(chuàng)建臨時按鈕,設置文本裸扶,設置不可編輯

t1.setText(id);//填充數(shù)值

t1.setEditable(false);//設置不可被改動

t1.setFont(new Font("宋體", Font.BOLD, 12));

t1.setBorder(BorderFactory.createEtchedBorder());//設置邊框

JTextPane t2=new JTextPane();

t2.setText(name);

t2.setEditable(false);

t2.setFont(new Font("宋體", Font.BOLD, 12));

t2.setBorder(BorderFactory.createEtchedBorder());

JTextPane t3=new JTextPane();

t3.setText(price);

t3.setEditable(false);

t3.setFont(new Font("宋體", Font.BOLD, 12));

t3.setBorder(BorderFactory.createEtchedBorder());

JTextPane t4=new JTextPane();

t4.setText(danwei);

t4.setEditable(false);

t4.setFont(new Font("宋體", Font.BOLD, 12));

t4.setBorder(BorderFactory.createEtchedBorder());

t1.setBounds(0,y_pos, 100, 20);//X Y? WIDTH HEIGH

t2.setBounds(100,y_pos, 100, 20);

t3.setBounds(200,y_pos, 100, 20);

t4.setBounds(300,y_pos, 100, 20);

//將數(shù)據存入MySQL中

String sql="insert into goods_info value("+id+",\""+name+"\","+price+",\""+danwei+"\");";

try {

stmt.execute(sql);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {

y_pos=update_UI(panel,stmt,textPane,textPane_1,textPane_2,textPane_3);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

});

改動功能:

button.addMouseListener(new MouseAdapter() {//改動按鈕事件

@Override

public void mouseClicked(MouseEvent e) {

/*

* 當點擊改動按鈕的時候框都,獲取到改動的值搬素,id值是必須要輸入的呵晨!

* 。熬尺。摸屠。好吧如果只改動一個值那么就要判斷好多次,粱哼,季二,還是全都輸入才能改動吧(其實就是懶)

*

*/

//獲取數(shù)據

String id=textPane5.getText();

String name=textPane6.getText();

String price=textPane7.getText();

String danwei=textPane8.getText();

//判斷是否為空值

if(!id.isEmpty()&&!name.isEmpty()&&!price.isEmpty()&&!danwei.isEmpty()) {//必須用是否為空判斷 ==?

textPane5.setText(null);

? ? textPane6.setText(null);

textPane7.setText(null);

textPane8.setText(null);//首先清除所有的值

//然后執(zhí)行sql語句,將數(shù)據值進行更新

String sql="update goods_info set name=\""+name+"\",price="+price+",unit=\""+danwei+"\" where id="+id;

try {

stmt.execute(sql);

} catch (SQLException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

}

//然后刷新一下就好了

try {

y_pos=update_UI(panel,stmt,textPane,textPane_1,textPane_2,textPane_3);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}


難點在于?

1.結合了數(shù)據庫 胯舷,需要不斷嘗試將sql語句轉換成有效的字符串刻蚯,

2.組件之間的互動 ,要明確功能? 和需要的組件 桑嘶。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末炊汹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子逃顶,更是在濱河造成了極大的恐慌讨便,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件以政,死亡現(xiàn)場離奇詭異霸褒,居然都是意外死亡,警方通過查閱死者的電腦和手機盈蛮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門废菱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眉反,你說我怎么就攤上這事昙啄。” “怎么了寸五?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵梳凛,是天一觀的道長。 經常有香客問我梳杏,道長韧拒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任十性,我火速辦了婚禮叛溢,結果婚禮上,老公的妹妹穿的比我還像新娘劲适。我一直安慰自己楷掉,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布霞势。 她就那樣靜靜地躺著烹植,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愕贡。 梳的紋絲不亂的頭發(fā)上草雕,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音固以,去河邊找鬼墩虹。 笑死嘱巾,一個胖子當著我的面吹牛,可吹牛的內容都是我干的诫钓。 我是一名探鬼主播旬昭,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼菌湃!你這毒婦竟也來了稳懒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤慢味,失蹤者是張志新(化名)和其女友劉穎场梆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纯路,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡或油,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了驰唬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顶岸。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叫编,靈堂內的尸體忽然破棺而出辖佣,到底是詐尸還是另有隱情,我是刑警寧澤搓逾,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布卷谈,位于F島的核電站,受9級特大地震影響霞篡,放射性物質發(fā)生泄漏世蔗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一朗兵、第九天 我趴在偏房一處隱蔽的房頂上張望污淋。 院中可真熱鬧,春花似錦余掖、人聲如沸寸爆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赁豆。三九已至,卻和暖如春找田,著一層夾襖步出監(jiān)牢的瞬間歌憨,已是汗流浹背着憨。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工墩衙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓漆改,卻偏偏與公主長得像心铃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挫剑,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容