国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用Java帶你打造一款簡單的外賣系統

開發 后端
主要介紹了JPanel、 JCheckBox、 JLabel、 JButton、 JTextField等組件的基本使用,背景顏色的添加,圖片圖標的設置,以及相應的事件處理。

[[355456]]

 【一、項目背景】

隨著互聯網時代的快速發展,便捷人民的生活,提高生活質量,外賣系統應運而生。

人們也喜歡享受著“足不出戶,美食到家”的待遇,促使網上訂餐行業快速發展。

【二、項目目標】

1. 設計一款應用程序-外賣系統,有文字和圖片顯示,通過選擇一種或多種食物,每種食物可以選擇一份或多份,點擊結算后,進行總價的統計。

2. 實現標題文字滾動和顏色定時變化。

3. 實現消費多少錢免配送費以及消費多少錢滿減。

【三、項目實施】

使用eclipse軟件開發,先上效果圖,如下圖所示。

可以看到在界面上有文字和圖片顯示,通過選擇一種或多種食物,每種食物可以選擇一份或多份,結算功能,標題文字滾動加顏色變化的功能。

接下來,小編帶大家進行具體的實現,具體的實現步驟如下。

【四、實現步驟】

一、首先實現外賣系統購物車的窗口

  1. public static void main(String[] args) { 
  2.     // TODO Auto-generated method stub 
  3.         Takeout t = new Takeout(); 
  4.         t.setTitle("饒洋外賣"); 
  5.         t.setSize(720,550); 
  6.         t.setVisible(true); 

使用new關鍵字創建Takeout類;

setTitle表示設置界面的標題;

setSize(寬,高)表示窗體大小;

setVisible(true或false)表示窗體是否可見;

二、添加文字實現

1. 使用到組件有JPanel、JLabel;

2. 添加Takeout類的成員變量;

  1. public class Takeout extends JFrame { 
  2.   //成員變量 
  3.       private JPanel panel01 = new JPanel(); 
  4. private JLabel label01 = new JLabel("歡迎來到饒洋外賣系統!"); 

3. 添加文字說明;

Takeout類構造函數:

  1. Takeout(){ 
  2.       label01.setFont(new Font("黑體",Font.PLAIN,30)); 
  3.       label01.setForeground(Color.BLUE); 
  4.        panel01.add(label01); 
  5.       panel01.setOpaque(false);//設置透明 
  6.       this.setLayout(new BorderLayout()); 
  7.       this.add(panel01,BorderLayout.NORTH); 
  8.       this.getContentPane().setBackground(c); 

4. 文字(label01)設置顯示效果

1) setFont(newFont(String 字體,int 風格,int 字號));

  • 字體:TimesRoman, Courier, Arial等;
  • 風格:三個常量 lFont.PLAIN, Font.BOLD, Font.ITALIC;
  • 字號:字的大小(磅數);

2) setForegound設置前景色;

3) setOpaque設置控件透明(ture或false);

4) 布局管理器之BorderLayout(邊界布局);

邊界布局管理器把容器的的布局分為五個位置:CENTER、EAST、WEST、NORTH、SOUTH。依次相應為:上北(NORTH)、下南(SOUTH)、左西(WEST)、右東(EAST),中(CENTER)。

5. 邊界布局特征

1) 能夠把組件放在這五個位置的隨意一個,假設未指定位置,則缺省的位置是CENTER。

2) 南、北位置控件各占領一行,控件寬度將自己主動布滿整行。東、西和中間位置占領一行;若東、西、南、北位置無控件,則中間控件將自己主動布滿整個屏幕。若東、西、南、北位置中不管哪個位置沒有控件,則中間位置控件將自己主動占領沒有控件的位置。

3) 它是窗體、框架的內容窗格和對話框等的缺省布局。

6. getContentPane.setBackground(c)初始化一個容器,設置背景RGB顏色需要在成員變量定義

  1. private Color c = new Color(197,228,251); 

三、添加食物文字、數量(按鈕)和圖片

需要添加JPanel、 JCheckBox、 JButton 、JLabel等。

1. 添加Takeout類的成員變量

  1. private JPanel panel02 = new JPanel(); 
  2.    private JCheckBox check[] = new JCheckBox[9];//文字(多選框) 
  3.    private JButton amount[] = new JButton[9];//數量(按鈕) 
  4.    private JLabel food[] = new JLabel[9];//食物圖片 
  5.    private int num[]=new int[9];//數量數組 

2. 在Takeout類的構造函數設置組件的屬性

參考代碼

  1. Takeout(){ 
  2.   …… 
  3.     check[0]=new JCheckBox("  雪糕    3.0元",false); 
  4.     check[1]=new JCheckBox("  薯條    6.0元",false); 
  5.     check[2]=new JCheckBox("爆米花  8.0元",false); 
  6.     check[3]=new JCheckBox("  熱狗  10.0元",false); 
  7.     check[4]=new JCheckBox("漢堡包11.0元",false); 
  8.     check[5]=new JCheckBox("巨無霸16.0元",false); 
  9.     check[6]=new JCheckBox("  可樂    6.0元",false); 
  10.     check[7]=new JCheckBox("  果汁    8.0元",false); 
  11. check[8]=new JCheckBox("  啤酒    6.0元",false); 
  12. for(int i=0;i<9;i++){ 
  13.       amount[i]=new JButton("1份"); 
  14.       food[i]=new JLabel(new         ImageIcon("image//food"+(i+1)+".jpg")); 
  15.       check[i].setOpaque(false); 
  16.       panel02.add(check[i]); 
  17.       panel02.add(amount[i]); 
  18.       panel02.add(food[i]); 
  19.       num[i]=1; 
  20.        
  21.       amount[i].addActionListener(my); 
  22.        
  23.       } 
  24.       panel02.setOpaque(false); 
  25.     this.add(panel02,BorderLayout.CENTER); 

四、添加狀態信息:JTextArea等

1. 添加Takeout類的成員變量

  1. private JTextArea list=new JTextArea(10,20); 
  2. private String str=""

2. 在Takeout類的構造函數設置組件的屬性

參考代碼

  1. Takeout(){ 
  2.   …… 
  3. list.setText("狀態:未選餐!"); 
  4.       list.setBackground(c); 
  5.     panel02.add(list); 
  6. } 

五、添加按鈕和總價框:JPanel、 JButton、JLabel、JTextField等

1. 添加Takeout類的成員變量

  1. private JPanel panel03=new JPanel(); 
  2.      private JButton btn_ok = new JButton("結算"); 
  3.      private JButton btn_cancel = new JButton("清空"); 
  4.      private JLabel label02 = new JLabel("總價:"); 
  5.      private JTextField text01 = new JTextField(10); 
  6.      private double a[]=new double[9];//食物單價 
  7.      private double total=0;//總價 

2. 在Takeout類的構造函數設置組件的屬性

參考代碼

  1. Takeout(){ 
  2.   …… 
  3.     panel03.add(btn_ok); 
  4.     panel03.add(btn_cancel); 
  5.     panel03.add(label02); 
  6.     panel03.add(text01); 
  7.     panel03.add(label03); 
  8.     this.add(panel03,BorderLayout.SOUTH); 
  9.     panel03.setOpaque(false); 
  10.      
  11.     a[0]=3.0; 
  12.     a[1]=6.0; 
  13.     a[2]=8.0; 
  14.     a[3]=10.0; 
  15.     a[4]=11.0; 
  16.     a[5]=16.0; 
  17.     a[6]=6.0; 
  18.     a[7]=8.0; 
  19.     a[8]=6.0; 

六、事件處理

定義事件處理類,實現事件監聽器

1. 在成員變量添加

  1. private MyListener my = new MyListener(); 

2. 在Takeout()內添加

  1. btn_ok.addActionListener(my); 
  2.  btn_cancel.addActionListener(my); 

3. 添加事件監聽器MyListener(自己命名)

  1. private class MyListener implements ActionListener{ 
  2.  
  3.     @Override 
  4.     public void actionPerformed(ActionEvent e) { 
  5.       // TODO Auto-generated method stub 
  6.       //添加事件處理代碼 
  7.             for(int i=0;i<9;i++){ 
  8.               if(e.getSource()==amount[i]){ 
  9.                 if(num[i]<9) 
  10.                   num[i]++; 
  11.                 else 
  12.                   num[i]=0; 
  13.                 amount[i].setText(num[i]+"份"); 
  14.               } 
  15.             } 
  16.             if(e.getSource()==btn_ok){ 
  17.               total=0; 
  18.               str=""
  19.               for(int i=0;i<9;i++){ 
  20.                 if(check[i].isSelected()==true){ 
  21.                   total=total+a[i]*num[i]; 
  22.                   str=str+check[i].getText()+"    "+amount[i].getText()+"\n"
  23.                 } 
  24.               }               
  25.               text01.setText(""+total); 
  26.               list.setText("狀態:已選餐:\n"+str+"\n"); 
  27.             } 

以上e.getSource()==btn_cancel代碼完成清空功能。

【五、思考題1】

現在外賣系統商家因業務需求,每一訂單需要配送費5元,在活動期間,購滿30元免配送費,滿100元立減10元,程序應如何修改?

1. 在成員變量添加以下代碼。

  1. private final int FEE=5;//配送費 
  2. private JLabel label03 = new JLabel("滿30免費配送,滿100立減10"); 

2. 在Takeout()類構造函數中if(e.getSource()==btn_ok)添加以下的代碼。

  1. if(total<30){ 
  2.                 label03.setText("還差"+(30-total)+"就免費配送,還差"+(100-total)+"就滿100減10"); 
  3.                 total=total+FEE; 
  4.                 str=str+"配送費   5元"
  5.               }else if(total<100){//免費配送,不參與滿100-10 
  6.                 label03.setText("免費配送,還差"+(100-total)+"就滿100減10"); 
  7.               }else
  8.                 label03.setText("免費配送,已參與滿100減10,"+(total)+"-10"); 
  9.                 total=total-FEE-FEE; 
  10.               } 

【六、思考題2】

實現“歡迎來到饒洋外賣系統!”文字滾動和顏色定時變化。程序應如何修改?

1. 在成員變量添加以下代碼。

  1. private Color color[]=new Color[]{Color.BLACK,Color.RED, 
  2.          Color.BLUE,Color.LIGHT_GRAY, 
  3.              Color.YELLOW,Color.GREEN, 
  4.              Color.MAGENTA    
  5.      }; 
  6.      private Timer timer;//定時器 
  7.      private int colorIndex=0;//當前顏色的序號 

2. 在Takeout()類構造函數中if(e.getSource()==btn_ok)添加以下的代碼。

  1. Takeout(){ 
  2. ..... 
  3. 添加timer=new Timer(500,new TimerListener()); 
  4.     //定時的時間間隔(單位ms),定時器監聽器(要做的事情) 
  5.     timer.start();//啟動定時器 
  6. } 

3. 實現這個TimerListener()函數。

  1. class TimerListener implements ActionListener{//定時器監聽器 
  2.  
  3.   @Override 
  4.   public void actionPerformed(ActionEvent e) { 
  5.     // TODO Auto-generated method stub 
  6.     //定時時間到了,要做的事情: 
  7.     colorIndex++;// 0 1 2 3 4 5 6 7%7=0  8%7=1 9%7=2 
  8.     label01.setForeground(color[colorIndex/4 % color.length]); 
  9.      
  10.       String temp=label01.getText(); 
  11.       label01.setText( temp.substring(1,temp.length())+temp.substring(0,1)); 
  12.       //substring(i,j)截取字符串從序號i(包含)到序號j(不包含) i ~ j-1 
  13.   }     

以上代碼可以實現文字的滾動和顏色變化。

這個項目主要是用Java Swing圖形界面開發,Swing包括圖形用戶界面器件,還有Java中為我們提供了Timer來實現定時任務,最主要涉及到了兩個類:Timer和TimerTask。

【七、總結】

1. 主要介紹了JPanel、 JCheckBox、 JLabel、 JButton、 JTextField等組件的基本使用,背景顏色的添加,圖片圖標的設置,以及相應的事件處理。

2.事件處理函數的添加,難點是運用理解構造函數、內部類的創建。

本文轉載自微信公眾號「IT共享之家」,可以通過以下二維碼關注。轉載本文請聯系IT共享之家公眾號。

 

責任編輯:武曉燕 來源: IT共享之家
相關推薦

2020-12-07 11:50:14

Java學習系統eclipse

2015-11-27 09:18:11

AngularJSWeb應用

2021-02-01 08:41:06

Java考試系統

2021-02-04 15:52:46

Java考試系統

2014-12-16 10:11:22

2021-01-12 05:05:15

Java對碰游戲

2021-01-13 09:03:48

Java游戲函數

2021-06-10 09:00:32

Java項目實戰Java編程

2023-05-22 10:04:24

2016-12-08 11:49:03

APPRetrofitRxJava

2021-01-04 09:55:26

Java移動互聯網

2022-02-17 10:26:17

JavaScript掃雷游戲前端

2021-01-05 09:04:20

Javatxt文件

2021-11-01 10:26:07

CanvasAPI畫布技術HTML5

2024-08-16 08:31:05

2021-12-30 08:56:57

Python摸魚倒計界面Python基礎

2022-02-12 00:00:00

架構

2021-11-17 15:36:04

鴻蒙HarmonyOS應用

2022-03-04 09:05:55

StarRocks數據湖數據質量

2019-07-15 15:20:52

Python語音識別機器人
點贊
收藏

51CTO技術棧公眾號

国产第一页在线| 中文字幕日韩电影| 国产精品久久久久久网站| 黄色成人在线观看| 国产精品久久综合| 91美女片黄在线观看游戏| 激情视频网站在线播放色| 午夜久久电影网| 8x8x最新地址| 国产高清精品久久久久| 国产欧美精品一区二区三区| 国产精品15p| 一夜七次郎国产精品亚洲| 黄色在线免费| 午夜精品成人在线视频| 乱子伦视频在线看| 秋霞电影网一区二区| 97免费资源站| 成人一区不卡| 538国产精品视频一区二区| 亚洲成a人片| 精品久久国产字幕高潮| 中文在线a在线| 一区二区三区欧美激情| 欧美成年人视频在线观看| caoporn国产精品| 50度灰在线观看| 六月丁香综合在线视频| 欧美成人一区二区在线| 国色天香一区二区| 91亚洲精品丁香在线观看| 色无极亚洲影院| 日韩免费观看网站| 日韩美女毛片| 欧美黑人xxxx| 国产精选久久| 久热精品视频在线免费观看| 免费一级欧美在线观看视频| 亚洲欧洲激情在线| 日本综合字幕| 日韩亚洲第一页| 57pao成人永久免费| 日韩亚洲综合在线| 欧州一区二区三区| 亚洲**2019国产| 日韩三级在线播放| 免费在线观看av网站| 在线欧美日韩精品| 欧美捆绑视频| 欧美午夜精品一区二区蜜桃| 91短视频版在线观看www免费| 色av一区二区| 亚洲精品白浆| 亚洲天堂av网| 超碰在线成人| 成人日韩av在线| 午夜影院日韩| 黄黄视频在线观看| 26uuu久久综合| 精产国产伦理一二三区| 激情亚洲一区二区三区四区| 欧美性猛交xxx| 你懂的免费在线观看| 一区二区三区久久| 国产精品久久久久久五月尺| av资源种子在线观看| 99人久久精品视频最新地址| 日韩一区二区在线免费观看| 久久er99热精品一区二区三区 | 亚洲天天在线日亚洲洲精| 忘忧草在线日韩www影院| 亚洲欧美在线一区二区| 香蕉大人久久国产成人av| 国产不卡av在线免费观看| 亚洲视频久久| 国产精品视频网站在线观看| 日本一二三不卡| 欧美视频免费一区二区三区| 日韩精品一区二区三区在线播放 | 在线精品高清中文字幕| 免费观看性欧美大片无片| 国产有码在线一区二区视频| 日韩高清国产一区在线| 污污视频网站免费观看| 色94色欧美sute亚洲线路二| 手机在线观看av| 国产mv免费观看入口亚洲| 午夜影院日韩| 制服丝袜影音| 亚洲白虎美女被爆操| 日本成人中文| 色999日韩自偷自拍美女| 国产精品免费av| 欧美尤物美女在线| 欧美激情网站在线观看| 一区二区三区国产盗摄| 最新中文字幕2018| 欧美大片拔萝卜| 精品国产乱码久久久久久果冻传媒| 欧美一区二区三区成人久久片| 久久久久久久久久久黄色| 午夜视频在线看| 国a精品视频大全| 麻豆国产精品一区二区三区| 交换国产精品视频一区| 亚洲精品天天看| 午夜影院欧美| 亚洲成人福利在线观看| 337p日本欧洲亚洲大胆色噜噜| 欧美人与拘性视交免费看| 中文字幕第一页亚洲| 在线中文字幕一区二区| 欧美1区二区| 美女黄色免费看| 日韩亚洲欧美综合| 亚洲人metart人体| 肥女人的一级毛片| www.色综合| 麻豆精品一区二区综合av| 免费黄色在线视频网站| 欧美性在线视频| 91在线精品一区二区三区| 午夜av在线播放| 亚洲一区二区中文| 亚洲精品视频一区| 97久久精品| 欧美成人xxxxx| 亚洲欧美日韩一区二区三区在线| 亚洲网站啪啪| 濑亚美莉一二区在线视频| 欧美精品成人91久久久久久久| 国内精品久久久久影院一蜜桃| 男人的天堂在线视频免费观看| 国产精品丝袜视频| 综合欧美亚洲日本| 成人三级毛片| 成人免费毛片播放| 久久久精品一区二区| 国产精品亚洲一区二区三区在线| 欧美1234区| 先锋影音网一区| 亚洲成**性毛茸茸| 美女网站色91| 国产高清中文字幕在线| 亚洲一区二区三区免费观看| 精品日韩在线观看| 日韩国产精品久久久久久亚洲| 国产黄色在线免费观看| 欧美成人一区二区在线| 日韩亚洲欧美中文三级| 欧美亚洲三级| 在线观看wwwxxxx| 日韩av一区二区三区在线| 91精品国产一区二区| 国产亚洲一区在线| 在线观看av免费| 91免费网站视频| 亚洲天堂av在线播放| 粉嫩高潮美女一区二区三区| 日韩毛片在线| 777av视频| 九九热精品视频在线播放| 中文字幕高清一区| 欧美日韩亚洲在线观看| 污视频网站在线观看| 精品乱色一区二区中文字幕| 精品伦理精品一区| 国产成人在线视频网站| 电影91久久久| 成人亚洲一区二区三区| 成人天堂噜噜噜| 欧美一区二区三区精品| 国产精品尤物| 9i看片成人免费高清| 久久国产亚洲精品无码| 91精品国产一区| 色先锋久久av资源部| 久久在线精品| 农村妇女一区二区| 男女激情网站| 久久久久se| 色综久久综合桃花网| 亚洲欧美日韩国产综合在线| 欧美国产高潮xxxx1819| av在线理伦电影| 欧美性大战久久久久xxx| 国产精品久久电影观看| 精品视频色一区| 国产黄色精品视频| 清纯唯美亚洲经典中文字幕| 搞黄视频在线观看| 国内外成人激情免费视频| 97在线视频国产| 欧美日韩国产一二三| 粉嫩在线一区二区三区视频| 欧美美女黄色| 黄色网址在线免费观看| 国产精品亚洲a| 精品免费一区二区三区蜜桃| 插插插亚洲综合网|