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

手把手教你用Java打造一款簡(jiǎn)單故事書(shū)之二

開(kāi)發(fā) 后端
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,電子版的書(shū)成為現(xiàn)在主流,針對(duì)用戶的需求,有的放矢地呈現(xiàn)給用戶,閱讀電子版書(shū),提高他們的學(xué)習(xí)效率。

[[373730]]

上篇文章,我們介紹了故事書(shū)的理論內(nèi)容,這篇文章,我們一起來(lái)看具體的代碼實(shí)現(xiàn)。,具體教程如下。

一、項(xiàng)目背景

隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,電子版的書(shū)成為現(xiàn)在主流,針對(duì)用戶的需求,有的放矢地呈現(xiàn)給用戶,閱讀電子版書(shū),提高他們的學(xué)習(xí)效率。

二、項(xiàng)目目標(biāo)

1.實(shí)現(xiàn)美觀的界面。

2.能夠基本實(shí)現(xiàn)改變字號(hào)、字體、字形、顏色、壁紙等選擇,按鈕頁(yè)面切換功能。

3.java讀取txt文件,簡(jiǎn)化代碼。

三、項(xiàng)目實(shí)施

首先回顧上一節(jié)的手把手教你用Java打造一款簡(jiǎn)單故事書(shū)(上篇),完成界面的窗口、菜單欄、上下頁(yè)的按鈕,效果如下圖所示。

接下來(lái),小編帶大家完成剩下的功能,具體的實(shí)現(xiàn)步驟如下。

(一)顯示背景圖,完成界面設(shè)計(jì)

1.setOpaque設(shè)置控件是否透明的,true表示不透明,false表示透明;

  1. text01.setOpaque(false); 
  2. panel01.setOpaque(false); 
  3. label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());//設(shè)置邊界 
  4. imagePanel=(JPanel)this.getContentPane();//獲取窗體的內(nèi)容面板 
  5. imagePanel.setOpaque(false);//設(shè)置透明 
  6. this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); 

2.把背景圖添加到分層窗格的最底層;

  1. label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());//設(shè)置邊界 
  2. imagePanel=(JPanel)this.getContentPane();//獲取窗體的內(nèi)容面板 
  3. imagePanel.setOpaque(false);//設(shè)置透明 
  4. this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); 

效果圖如下圖所示:

(二)添加事件監(jiān)聽(tīng)器MyListener(自己命名)

1.頁(yè)面切換按鈕功能的實(shí)現(xiàn):

  1. class MyListener implements ActionListener{ 
  2. @Override 
  3. public void actionPerformed(ActionEvent e) { 
  4. // TODO Auto-generated method stub 
  5. //此處添加事件處理的代碼 
  6. if(e.getSource()==btn_last){//上一頁(yè) 
  7.         if(papeNum>1){//不是第一頁(yè) 
  8.             papeNum--; 
  9.             btn_last.setEnabled(true); 
  10.             btn_next.setEnabled(true); 
  11.         } 
  12.         if(papeNum==1){ 
  13.             btn_last.setEnabled(false); 
  14.             btn_next.setEnabled(true); 
  15.         } 
  16. if(e.getSource()==btn_next){//下一頁(yè) 
  17.         if(papeNum<str.length){//不是最后一頁(yè) 
  18.             papeNum++; 
  19.             btn_last.setEnabled(true); 
  20.             btn_next.setEnabled(true); 
  21.         } 
  22.         if(papeNum==str.length){ 
  23.             btn_last.setEnabled(true); 
  24.             btn_next.setEnabled(false); 
  25.         } 
  26.    text01.setText(str[papeNum-1]); 

2.字號(hào)、字體、字形功能的實(shí)現(xiàn):

  1. if(e.getSource()==twelf)//字號(hào)12 
  2.    size=12; 
  3.    if(e.getSource()==fiveteen)//字號(hào)15 
  4.    size=15; 
  5.    if(e.getSource()==eighteen)//字號(hào)18 
  6.    size=18; 
  7.    if(e.getSource()==twenty)//字號(hào)20 
  8.    size=20; 
  9.    if(e.getSource()==song)//字體宋體 
  10.    style="宋體"
  11.    if(e.getSource()==hei)//字體黑體 
  12.    style="黑體"
  13.    if(e.getSource()==kai)//字體楷體 
  14.    style="楷體"
  15.    if(e.getSource()==chang)//字形常規(guī) 
  16.    pattern=Font.PLAIN; 
  17.    if(e.getSource()==jia)//字形加粗 
  18.    pattern=Font.BOLD; 
  19.    if(e.getSource()==qing)//字形傾斜 
  20.    pattern=Font.ITALIC; 
  21.    text01.setFont(new Font(style,pattern,size)); 

3.顏色、換壁紙功能的實(shí)現(xiàn):

  1. if(e.getSource()==red)//顏色紅色 
  2.    text01.setForeground(Color.red); 
  3.    if(e.getSource()==green)//顏色綠色 
  4.    text01.setForeground(Color.green); 
  5.    if(e.getSource()==blue)//顏色藍(lán)色 
  6.    text01.setForeground(Color.blue); 
  7.    
  8.    if(e.getSource()==swap){//換壁紙 
  9. photoNum++; 
  10. if(photoNum>=6) 
  11.         photoNum=1; 
  12. label.setIcon(new ImageIcon("photo//photo"+photoNum+".jpg")); 

4.程序中顯示文字是以String數(shù)組形式存儲(chǔ),這種方式比較方便易懂,但卻使得代碼較多。因此,在文字較多情況下,應(yīng)考慮以txt文檔形式存儲(chǔ)故事文字,在程序中讀取文檔內(nèi)容,以顯示在窗口中。

(1)讀取Txt文件:在main主程序?qū)懸韵麓a:

  1. FileInputStream inStream0= new FileInputStream("story//s01.txt"); 
  2. FileInputStream inStream1= new FileInputStream("story//s02.txt"); 
  3. FileInputStream inStream2= new FileInputStream("story//s03.txt"); 
  4. str[0]= s.readFile(inStream0); 
  5. str[1]=s.readFile(inStream1); 
  6. str[2]=s.readFile(inStream2); 
  7. text01.setText(str[0]); 

(2)讀取文件中內(nèi)容的方法:

  1. public String readFile(InputStream inStream){//讀取文件中的內(nèi)容 
  2.  byte[] buffer =new byte[2048]; 
  3.  int hasRead=0;//已經(jīng)讀取的字節(jié)數(shù) 
  4.  StringBuffer sBuffer=new StringBuffer(); 
  5.  try{ 
  6.  while( (hasRead = inStream.read(buffer))!=-1){//還沒(méi)有讀完 
  7.          sBuffer.append(new String(buffer,0,hasRead,"GBK")); 
  8.  } 
  9.  inStream.close(); 
  10.  }catch(Exception e){ 
  11.  e.printStackTrace(); 
  12.  } 
  13.  
  14. return sBuffer.toString(); 
  15.     }      

5.標(biāo)簽本來(lái)是一種最簡(jiǎn)單的組件,為什么可以將它設(shè)置成為一個(gè)窗體的背景呢?

答案:(1)首先還是要了解框架JFrame中的層次結(jié)構(gòu)。JFrame中的層次分布及相對(duì)關(guān)系是:最底層是JRootPane,第二層是JlayerPane,最上層就是ContentPane,也正是我們常說(shuō)的內(nèi)容面板。

(2)所以一般我們拖放的控件就是在ContentPane層上。也就是說(shuō)我們只需將背景圖片放在JFrame的第二層是JlayerPane上,再把內(nèi)容面板ContentPane設(shè)置為透明,則第二層JlayerPane上放置的圖片即成為內(nèi)容面板的背景了。

四、總結(jié)

1.本文主要介紹了JPanel、JButton、JLabel、JTextArea、JMenu、JMenuItem等組件的基本使用,以及相應(yīng)的事件處理。

2.事件處理函數(shù)的添加,難點(diǎn)是運(yùn)用理解構(gòu)造函數(shù)、內(nèi)部類(lèi)的創(chuàng)建。

 

3.代碼很簡(jiǎn)單,希望能幫到你。

本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Java進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2023-05-22 10:04:24

2021-01-04 09:55:26

Java移動(dòng)互聯(lián)網(wǎng)

2021-02-04 15:52:46

Java考試系統(tǒng)

2021-02-01 08:41:06

Java考試系統(tǒng)

2017-09-14 09:09:04

php應(yīng)用LibreOfficeWord轉(zhuǎn)HTML

2022-02-17 10:26:17

JavaScript掃雷游戲前端

2021-01-10 08:14:01

Go語(yǔ)言TCP掃描器

2021-11-01 10:26:07

CanvasAPI畫(huà)布技術(shù)HTML5

2021-12-30 08:56:57

Python摸魚(yú)倒計(jì)界面Python基礎(chǔ)

2021-08-13 09:01:31

Python小游戲Python基礎(chǔ)

2021-01-21 06:04:55

Go語(yǔ)言TCP目錄生成器

2024-01-07 20:00:27

2022-10-19 14:30:59

2021-08-09 13:31:25

PythonExcel代碼

2021-01-13 09:03:48

Java游戲函數(shù)

2021-01-12 05:05:15

Java對(duì)碰游戲

2022-08-04 10:39:23

Jenkins集成CD

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數(shù)據(jù)pandas數(shù)據(jù)分析

2011-03-28 16:14:38

jQuery
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

综合av在线| 国产综合色视频| 亚洲女人天堂视频| 99色在线视频| 日韩成人一级大片| 国产成人精品免费视频| 精品人人视频| 色婷婷av一区二区三区之一色屋| 97中文字幕在线| 国内精品亚洲| 国产精品成人国产乱一区| 国产成人久久精品麻豆二区| 欧美另类videos死尸| 久草亚洲一区| 99re成人在线| 手机成人在线| 韩日欧美一区| 国产欧洲精品视频| 98视频精品全部国产| 亚洲精品资源美女情侣酒店| 99reav在线| 香蕉加勒比综合久久| 男女啪啪网站视频| 国产福利91精品一区| 人禽交欧美网站免费| 欧美成人首页| 成人伊人精品色xxxx视频| 妞干网视频在线观看| 日韩主播视频在线| 国产精品夜夜夜一区二区三区尤| 亚洲欧美精品在线| 青青草av免费在线观看| 亚洲三级在线免费| 亚洲五月天综合| 成人黄色在线视频| 18视频在线观看娇喘| 欧美成人69av| 成人精品久久久| 欧美精品色图| 国产精品久久久久久亚洲影视| 国产精品4hu.www| 亚洲国产精品va| 欧美性受ⅹ╳╳╳黑人a性爽| 欧美日韩国产经典色站一区二区三区| 中文字幕中文字幕在线中文字幕三区| 一区二区三区av电影| 性生大片免费观看性| 亚洲一区在线免费观看| 两个人hd高清在线观看| 亚洲国产精品久久久久秋霞影院| 日本三级电影网| 一区二区三区蜜桃| 在线成年人视频| 日本久久一区二区| 国产在线高潮| 亚洲国产精品va在线| 午夜裸体女人视频网站在线观看| 亚洲人在线视频| 国产精区一区二区| 欧美精品久久久久久久| 亚洲第一论坛sis| 国产综合在线观看视频| 欧美高清不卡| 久久久久久久有限公司| 美女网站久久| 欧美一区二区三区综合| 久久九九影视网| 爱情岛亚洲播放路线| 精品国产精品自拍| 色总=综合色| 午夜精品免费在线| 国产中文在线视频| 精品免费日韩av| 成人欧美一区二区三区的电影| 日韩在线观看免费全集电视剧网站 | 99久久精品国产导航| 久久精品香蕉视频| 亚洲综合激情小说| 香港伦理在线| 亚洲日韩欧美视频| 久久夜色精品国产噜噜av小说| 亚洲一区二区三| 国产高清精品久久久久| www.成人69.com| 91精品久久久久久久91蜜桃| 色综合一区二区日本韩国亚洲 | 亚洲激情小视频| 日本在线视频一区二区三区| 91在线观看免费网站| 精品亚洲aⅴ乱码一区二区三区| 最近免费中文字幕中文高清百度| 欧美日韩一区二区在线播放| 日韩深夜视频| 国产男女猛烈无遮挡91| 久久成人免费网| 日本在线аv| 亚洲精品视频在线观看视频| 要久久爱电视剧全集完整观看| 日本公妇乱淫免费视频一区三区| 国产亚洲欧美一级| 中中文字幕av在线| 日本不卡视频在线播放| 蜜臀va亚洲va欧美va天堂 | 黄色av网站在线免费观看| 欧美日韩在线影院| 国产在线美女| 成人免费大片黄在线播放| 国产精品99精品久久免费| 三级网站在线| 亚洲欧美日韩一区二区在线| 日韩精品网站| 99国产精品久| 在线看的你懂得| 尤物yw午夜国产精品视频明星 | 欧美激情视频三区| 久久久在线免费观看| 欧美a级成人淫片免费看| 在线观看成人av| 黑人巨大精品欧美一区二区免费 | 欧美调教网站| 水蜜桃亚洲精品| 一区二区三区四区不卡视频| 色成人免费网站| 蜜桃久久影院| 红桃视频成人在线观看| 欧美日韩午夜电影网| 日本一区二区三区视频在线观看| 亚洲成人av中文| 8x国产一区二区三区精品推荐| 在线观看免费91| 欧美精品久久99久久在免费线| 国产一区二区三区四区二区| 国产91在线免费| 亚洲激情视频在线观看| 91精品国产乱码久久久久久| www.99色.com| 欧美第一黄网免费网站| 国产高清精品在线| 直接在线观看的三级网址| av噜噜色噜噜久久| 亚洲成人一区在线| 日韩欧美天堂| 天天视频天天爽| 久久在线免费视频| av在线播放一区二区三区| 国产网红女主播精品视频| 99re视频在线| 在线观看一区不卡| 色呦哟—国产精品| 日本aⅴ中文| 国产精品久久久999| 亚洲精品视频在线观看网站| 欧美三级午夜理伦三级小说| 污网站在线观看免费| 777国产偷窥盗摄精品视频| 国产欧美一区视频| 999在线精品| 人人澡人人爽| 国产69久久精品成人看| 亚洲欧美激情一区二区| 黄色美女久久久| 国产xxxxx| 国产精品男女猛烈高潮激情| 亚洲第一搞黄网站| 自拍偷拍欧美| 成年人视频在线免费观看| 精品视频一区在线| 精品日韩一区二区| 国产在线麻豆精品观看| 国产在线|日韩| 超碰在线人人爱| 55夜色66夜色国产精品视频 | 国产在线观看一区| 欧美午夜片在线看| 亚洲经典自拍| 羞羞网站在线免费观看| 在线观看欧美一区| 自拍偷拍亚洲欧美| 26uuu久久综合| 亚洲高清极品| 欧美亚洲日本| 亚洲午夜精品久久久中文影院av | 亚洲国产欧美一区| 国产九色精品成人porny | 国产欧美日韩一区二区三区在线观看| 日本在线成人| 亚洲美女在线免费观看| 成人免费在线一区二区三区| 欧美日韩久久久| 国产精品18久久久久久久久 | 美国十次综合久久| 国产专区视频| 亚洲在线一区二区| 91精品国产综合久久久久久久 | 香蕉国产精品| 日本天码aⅴ片在线电影网站| 成年人视频网站免费| 97精品伊人久久久大香线蕉| 色综合久久88色综合天天6| 国产综合久久久久久鬼色|