当前位置: 首页 > 后端技术 > Python

用Java带你搭建一个简单的英语学习系统

时间:2023-03-26 01:55:40 Python

【1.项目背景】随着移动互联网的发展,英语学习系统可以将海量的数据进行结构化的组织。根据用户的个性化需求,有针对性地呈现给用户,为英语学习者提供便利,提高学习效率。[2。项目目标】1.实现漂亮的界面,添加需要的组件。2、基本可以实现更改字体、颜色、背景和页面切换等功能。3、Java读取txt文件,简化代码。[3.项目实施】使用eclipse软件开发,先上传效果图,如下图。可以看到界面上有一个菜单栏,可以更改字体、颜色和设置选项,还有页面切换功能。接下来小编就带大家进行具体的实现,具体的实现步骤如下。[4.实现步骤】1.首先实现表单接口。具体代码实现过程如下:publicstaticvoidmain(String[]args){//TODO自动生成方法存根EnglishSystemes=newEnglishSystem();es.setTitle("英语学习系统");es.setSize(750,600);es.setVisible(真);es.setResizable(false);es.setLocationRelativeTo(null);}使用new关键字创建EnglishSystem类;setTitle表示设置界面的标题;setSize(width,height)表示窗体的大小;setVisible(trueorfalse)表示表单是否可见;setResizable(trueorfalse)表示表单是否可以被用户调整大小;setLocationRelativeTo()表示设置窗口相对于指定组件的位置。二、实现菜单栏1.创建一个JFrame实例,一个JPanel面板,然后将面板添加到JFrame中。2.创建一个JMenuBar菜单栏对象。JMenu正在创建一个菜单对象并将菜单对象添加到菜单栏对象。3.将JMenuItem菜单项添加到JMenu。publicclassEnglishSystemextendsJFrame{privateJPanelpanel01=newJPanel();//菜单栏privateJMenuBarjb=newJMenuBar();privateJMenumenu01=newJMenu("font");privateJMenuItemitem01=newJMenuItem("宋体");privateJMenuItemitem02=newJMenuItem("Black");privateJMenumenu02=newJMenu("Color");privateJMenuItemitem03=newJMenuItem("玫瑰红");privateJMenuItemitem04=newJMenuItem("Blue");privateJMenuItemitem05=newJMenuItem("绿色");privateJMenuItemitem06=newJMenuItem("橙色");privateJMenuItemitem07=newJMenuItem("Black");privateJMenumenu03=newJMenu("设置");privateJMenuItemitem08=newJMenuItem("换壁纸");privateJMenuItemitem09=newJMenuItem("退出");4.实现文字区privateJPanelpanel03=newJPanel();//文字显示privatestaticJTextAreatext01=newJTextArea(30,89);5.实现上下页面切换6.当前背景图私我ntphotoNum=1;//背景图个数privateJPanelimagePanel;privateImageIconbg=newImageIcon("photo//photo"+photoNum+".png");//背景图片privateJLabellabel=newJLabel(bg);7.EnglishSystem类构造函数:构造该函数主要是为了实现设计界面,添加组件EnglishSystem(){jb.add(menu01);jb.add(menu02);jb.add(menu03);menu01.add(item01);menu01.add(item02);menu02.add(item03);menu02.add(item04);menu02.add(item05);menu02.add(item06);menu02.add(item07);menu03.add(item08);menu03.add(item09);panel01.add(jb);这个.add(panel01);this.setJMenuBar(jb);panel03.add(text01);text01.setText(str1);text01.setEditable(false);text01.设置线环绕(真);text01.setWrapStyleWord(true);panel03.setBorder(newTitledBorder("文字区"));this.add(panel03,BorderLayout.CENTER);text01.setFont(newFont("Blackbody",Font.PLAIN,14));8.为JMenuBar菜单栏添加字体、颜色、背景,字体中的菜单项,如黑体、宋体等,添加到菜单中。其他颜色,背景也添加组件!panel04.add(btn_last);panel04.add(btn_next);this.add(panel04,BorderLayout.SOUTH);text01.setOpaque(false);panel01.setOpaque(假);panel03.setOpaque(假);panel04.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));9.定义事件处理类,实现事件监听器privateMyListenermy=newMyListener();10.在AddlistenertospecifiedcomponentinEnglishSystemconstructoritem01.addActionListener(my);item02.addActionListener(我的);item03.addActionListener(我的);item04.addActionListener(我的);item05.addActionListener(我的);item06.addActionListener(我的);item07.addActionListener(我的);item08.addActionListener(我的);item09.addActionListener(我的);btn_next.addActionListener(我的);btn_last.addActionListener(我的);11、添加事件监听器MyListener(自己命名)。privateclassMyListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){//TODO自动生成的方法存根if(e.getSource()==item01){//Arialtext01.setFont(newFont("Arial",Font.PLAIN,14));}if(e.getSource()==item02){//黑体text01.setFont(newFont("黑体",Font.PLAIN,14));}if(e.getSource()==item03){//玫红色text01.setForeground(newColor(255,0,255));}if(e.getSource()==item04){//bluetext01.setForeground(Color.blue);}if(e.getSource()==item05){//greentext01.setForeground(newColor(0,100,0));}if(e.getSource()==item06){//橙色text01.setForeground(newColor(255,140,??0));}if(e.getSource()==item07){//黑色text01.setForeground(Color.BLACK);}if(e.getSource()==item08){//换壁纸photoNum++;if(photoNum>=6){photoNum=1;}label.setIcon(newImageIcon("photo//photo"+photooNum+".png"));}if(e.getSource()==item09){//退出dispose();}if(e.getSource()==btn_next){//下一页if(papeNum1){//不是第一页papeNum--;btn_last.setEnabled(true);btn_next.setEnabled(true);}if(papeNum==1){btn_last.setEnabled(false);btn_next.setEnabled(true);}}12、程序中显示的文字以String数组形式存储,更方便易懂,但它会生成更多代码。因此,在文本较多的情况下,应考虑将故事文本以txt文件的形式存储,在程序中读取文档内容显示在窗口中。读取Txt文件:Filefile=newFile(s[papeNum-1]);字符串str1=getFileContent(文件);text01.setText(str1);13、定义一个字符串数组privateString[]s=newString[]{"resource//s01.txt","re??source//s02.txt","re??source//s03.txt","re??source//s04.txt","re??source//s05.txt","re??source//s06.txt","resource//s07.txt","resource//s08.txt","resource//s09.txt","resource//s10.txt","resource//s11.txt","re??source//s12.txt","resource//s13.txt","re??source//s14.txt"};privateintpapeNum=1;//页码14.getFileContent函数中获取文件内容privateStringgetFileContent(Filefile){//获取文件内容BufferedReaderbr=null;StringBuffersb=newStringBuffer();尝试{br=newBufferedReader(newFileReader(file));字符串hasRead=null;while((hasRead=br.readLine())!=null){sb.append(hasRead+"\n");}}catch(Exceptione){}finally{if(br!=null){try{br.close();}赶上(IOExceptione){}}}returnsb.toString();}上面用到的组件主要是JavaSwing图形界面开发:1.Swing是JAVA基础类的一部分2.Swing包括图形用户界面(GUI)设备如:text框、按钮、分隔窗格和表格。3、Swing提供了很多比AWT更好的屏幕显示元素,纯Java实现,更好的兼容跨平台操作。[V.摘要】1.主要介绍了JPanel、JButton、JLabel、JTextArea、JMenu、JMenuItem等组件的基本使用,以及相应的事件处理。2、添加事件处理函数的难点在于使用和理解构造函数和内部类的创建。3、如需本文源码,请在公众号后台回复“英文系统”获取。看完这篇文章你有收获吗?请转发和分享给更多的人。如果想深入了解Python网络爬虫和数据挖掘,可以去专业网站:http://pdcfighting.com/