当前位置: 首页 > 科技观察

手把手教你用Java2制作一本简单的故事书

时间:2023-03-23 11:06:52 科技观察

在上一篇文章中,我们介绍了故事书的理论内容。这篇文章,我们来看看具体的代码实现,具体教程如下。一、项目背景随着移动互联网的发展,电子书成为主流。根据用户的需求,有针对性地呈现给用户,让用户阅读电子书,提高学习效率。二、项目目标1、实现界面美观。2、基本可以实现字号、字体、字体样式、颜色、壁纸等的选择,以及按钮页面切换功能。3.java读取txt文件,简化代码。三、项目实现首先回顾一下上一节教你如何用Java制作一个简单的故事书(上),并完成界面窗口、菜单栏、上下页面的按钮。效果如下图所示。接下来小编就带大家完成剩下的功能。具体实现步骤如下。(一)显示背景图片,完成界面设计1.setOpaque设置控件是否透明,true表示不透明,false表示透明;text01.setOpaque(false);panel01.setOpaque(false);label.setBounds(0),0,bg.getIconWidth(),bg.getIconHeight());//设置边框imagePanel=(JPanel)this.getContentPane();//获取窗体的内容面板imagePanel.setOpaque(false);//设置透明this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));2.将背景图片添加到分层窗格的底层;label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());//设置边框imagePanel=(JPanel)this.getContentPane();//获取窗体的内容面板imagePanel.setOpaque(false);//设置透明this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));效果图如下图所示:(二)添加事件监听MyListener(自己命名)1.页面切换按钮函数的实现:classMyListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstub//添加事件处理这里代码if(e.getSource()==btn_last){//上一页if(papeNum>1){//不是第一页papeNum--;btn_last.setEnabled(true);btn_next.setEnabled(true);}if(papeNum==1){btn_last.setEnabled(false);btn_next.setEnabled(true);}}if(e.getSource()==btn_next){//下一页if(papeNum=6)photoNum=1;label.setIcon(newImageIcon("photo//photo"+photoNum+".jpg"));}4、程序中显示的文字以String数组的形式存储,即我理解更方便和容易,但它会生成更多代码。因此,在文字较多的情况下,应考虑将故事文字以txt文件的形式存储,在程序中读取文档内容显示在窗口中。(1)读取txt文件:在主程序中写入如下代码:FileInputStreaminStream0=newFileInputStream("story//s01.txt");FileInputStreaminStream1=newFileInputStream("story//s02.txt");FileInputStreaminStream2=newFileInputStream("story//s03.txt");str[0]=s.readFile(inStream0);str[1]=s.readFile(inStream1);str[2]=s.readFile(inStream2);text01.setText(str[0]);(2)读取文件内容的方法:publicStringreadFile(InputStreaminStream){//读取文件内容byte[]buffer=newbyte[2048];inthasRead=0;//读取的字节数StringBuffersBuffer=newStringBuffer();try{while((hasRead=inStream.read(buffer))!=-1){//还没读完sBuffer.append(newString(buffer,0,hasRead,"GBK"));}inStream.close();}catch(Exceptione){e.printStackTrace();}returnsBuffer.toString();}}5.标签本来就是最简单的组件,为什么可以设置为表单背景呢??答:(1)首先我们还是要了解框架JFrame中的层次结构。JFrame中的层次分布和相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层是ContentPane,也就是我们常说的内容面板。(2)所以一般我们拖放的控件都在ContentPane层。也就是说,我们只需要将背景图片放在JlayerPane上,也就是JFrame的第二层,然后将内容面板ContentPane设置为透明,那么放在第二层JlayerPane上的图片就会成为的背景内容面板。四。小结1、本文主要介绍JPanel、JButton、JLabel、JTextArea、JMenu、JMenuItem等组件的基本使用,以及相应的事件处理。2、添加事件处理函数的难点在于使用和理解构造函数和内部类的创建。3.代码很简单,希望对你有帮助。本文转载自微信公众号《Java进阶学习交流》,可通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。

最新推荐
猜你喜欢