A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 血色@残阳 中级黑马   /  2015-2-19 17:23  /  6846 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

         在网上下了一个程序员必背单词的资料,就想着运用IO流的知识看能不能做一个学习小软件,因为之前没看过GUI,尼玛,为了做这个看了一天书学习GUI,做出来还是界面丑陋,唉……不过收获还是有一些的,同时希望大家能指正一些问题。这个小软件还有一个功能没做,就是保存上次背单词的进度,因为我没有想到好的办法,暂时没做这个功能,希望高手们给一点建议,先把原始代码放上,有好的建议在改进
  1. <p><p>package cn;</p><p>public class Run {</p><p> public static void main(String[] args) {
  2.   Window win = new Window();
  3. }</p><p>} </p></p><p>
  4. <img border="0" alt="" src="static/image/hrline/line4.png">
  5. package cn;</p><p>import java.io.*;
  6. public class FileOperate {
  7. BufferedReader br = null;
  8. String line = null;
  9. public FileOperate()
  10. {
  11.   try
  12.   {
  13.    br = new BufferedReader(new FileReader("words.txt"));      
  14.   }
  15.   catch (IOException e)
  16.   {
  17.    System.out.println("请检查words文件!");
  18.   }
  19. }

  20. public String getLine()
  21. {
  22.   try {
  23.    line = br.readLine().trim();  
  24.   } catch (IOException e) {
  25.    e.printStackTrace();
  26.   }finally{
  27.    return line;
  28.   }
  29. }

  30. public void close()
  31. {
  32.   try {
  33.    br.close();
  34.   } catch (IOException e) {
  35.    e.printStackTrace();
  36.   }
  37. }
  38. }</p><p>
  39. <img border="0" alt="" src="static/image/hrline/line9.png">
  40. package cn;
  41. /**
  42. * GUI版 程序员背单词
  43. * @author Bluce
  44. * @version 1.0
  45. */
  46. import java.awt.*;
  47. import java.awt.event.ActionEvent;
  48. import java.awt.event.ActionListener;
  49. import javax.swing.*;</p><p>public class Window extends JFrame implements ActionListener{
  50. //定义组件
  51. private JButton jb1;
  52. private JButton jb2;
  53. private JButton jb3;
  54. private JPanel jp;
  55. private JTextArea jta;

  56. int i = 0;
  57. FileOperate fo;
  58.    
  59. public Window()
  60. {
  61.   //创建组件
  62.   jb1 = new JButton("开始学习");
  63.   jb2 = new JButton("保存退出");
  64.   jb3 = new JButton("记住了");
  65.   jp = new JPanel(new GridLayout(1,3,7,5));
  66.   jta = new JTextArea(3,18);
  67.   //设置文本域
  68.   jta.setEditable(false);//不可修改复制
  69.   jta.setLineWrap(true); //激活换行功能
  70.   jta.setWrapStyleWord(true);            
  71.   jta.setFont(new Font("Default",Font.PLAIN,20));//设置文字字体、样式、大小
  72.   
  73.   //设置Layout布局
  74.   setLayout(new FlowLayout(FlowLayout.CENTER,10,47));
  75.   
  76.   //添加组件
  77.   add(jta);
  78.   add(jp);
  79.   jp.add(jb1);
  80.   jp.add(jb2);
  81.   jp.add(jb3);
  82.   //注册监听
  83.   jb1.addActionListener(this);
  84.   jb2.addActionListener(this);
  85.   jb3.addActionListener(this);
  86.   //指定Action命令   
  87.   jb1.setActionCommand("开始学习");
  88.   jb2.setActionCommand("保存退出");
  89.   jb3.setActionCommand("记住了");
  90.   
  91.   //设置窗体
  92.   setTitle("程序员必背单词");
  93.   setSize(340, 250);
  94.   setLocationRelativeTo(null);
  95.   setResizable(false);
  96.   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  97.   setVisible(true);
  98.   //实例化FileOperate类
  99.   fo = new FileOperate();         
  100. }
  101.   //覆写事件监听方法
  102. public void actionPerformed(ActionEvent e) {
  103.   if(e.getActionCommand().equals("开始学习")){
  104.    
  105.    jta.setText(fo.getLine());
  106.    i++;
  107.    jb1.setEnabled(false);//禁用该按钮,保证"开始学习"按钮只能按一次
  108.   }else if(e.getActionCommand().equals("记住了")){
  109.    //判断是否已经点击开始学习
  110.    if(i==1)
  111.     jta.setText(fo.getLine());     
  112.   }else if(e.getActionCommand().equals("保存退出")){
  113.    fo.close();
  114.    System.exit(0);
  115.   }
  116. }
  117. }


  118. </p>
复制代码

捕获.PNG (48.04 KB, 下载次数: 105)

捕获.PNG

评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
万合天宜 + 5 很牛逼啊哈哈
lwj123 + 1

查看全部评分

26 个回复

倒序浏览
不知道代码怎么成这样了,直接发源码包

ITword.zip

33.98 KB, 下载次数: 273

回复 使用道具 举报
  1. package cn;

  2. import java.io.*;
  3. public class FileOperate {
  4.         BufferedReader br = null;
  5.         String line = null;
  6.         public FileOperate()
  7.         {
  8.                 try
  9.                 {
  10.                         br = new BufferedReader(new FileReader("words.txt"));                                               
  11.                 }
  12.                 catch (IOException e)
  13.                 {
  14.                         System.out.println("请检查words文件!");
  15.                 }
  16.         }
  17.        
  18.         public String getLine()
  19.         {
  20.                 try {
  21.                         line = br.readLine().trim();               
  22.                 } catch (IOException e) {
  23.                         e.printStackTrace();
  24.                 }finally{
  25.                         return line;
  26.                 }
  27.         }
  28.        
  29.         public void close()
  30.         {       
  31.                 try {
  32.                         br.close();
  33.                 } catch (IOException e) {
  34.                         e.printStackTrace();
  35.                 }
  36.         }       
  37. }
复制代码
回复 使用道具 举报
  1. package cn;
  2. /**
  3. * GUI版 程序员背单词
  4. * @author Bluce
  5. * @version 1.0
  6. */
  7. import java.awt.*;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import javax.swing.*;

  11. public class Window extends JFrame implements ActionListener{
  12.         //定义组件
  13.         private JButton jb1;
  14.         private JButton jb2;
  15.         private JButton jb3;
  16.         private JPanel jp;
  17.         private JTextArea jta;
  18.        
  19.         int i = 0;       
  20.         FileOperate fo;
  21.                        
  22.         public Window()
  23.         {
  24.                 //创建组件
  25.                 jb1 = new JButton("开始学习");
  26.                 jb2 = new JButton("保存退出");
  27.                 jb3 = new JButton("记住了");
  28.                 jp = new JPanel(new GridLayout(1,3,7,5));
  29.                 jta = new JTextArea(3,18);
  30.                 //设置文本域
  31.                 jta.setEditable(false);//不可修改复制
  32.                 jta.setLineWrap(true); //激活换行功能
  33.                 jta.setWrapStyleWord(true);            
  34.                 jta.setFont(new Font("Default",Font.PLAIN,20));//设置文字字体、样式、大小
  35.                
  36.                 //设置Layout布局
  37.                 setLayout(new FlowLayout(FlowLayout.CENTER,10,47));
  38.                
  39.                 //添加组件
  40.                 add(jta);
  41.                 add(jp);
  42.                 jp.add(jb1);
  43.                 jp.add(jb2);
  44.                 jp.add(jb3);
  45.                 //注册监听
  46.                 jb1.addActionListener(this);
  47.                 jb2.addActionListener(this);
  48.                 jb3.addActionListener(this);
  49.                 //指定Action命令                       
  50.                 jb1.setActionCommand("开始学习");
  51.                 jb2.setActionCommand("保存退出");
  52.                 jb3.setActionCommand("记住了");
  53.                
  54.                 //设置窗体
  55.                 setTitle("程序员必背单词");
  56.                 setSize(340, 250);
  57.                 setLocationRelativeTo(null);
  58.                 setResizable(false);
  59.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  60.                 setVisible(true);
  61.                 //实例化FileOperate类
  62.                 fo = new FileOperate();                                                                       
  63.         }
  64.                 //覆写事件监听方法
  65.         public void actionPerformed(ActionEvent e) {
  66.                 if(e.getActionCommand().equals("开始学习")){       
  67.                        
  68.                         jta.setText(fo.getLine());       
  69.                         i++;
  70.                         jb1.setEnabled(false);//禁用该按钮,保证"开始学习"按钮只能按一次
  71.                 }else if(e.getActionCommand().equals("记住了")){
  72.                         //判断是否已经点击开始学习
  73.                         if(i==1)
  74.                                 jta.setText(fo.getLine());                                       
  75.                 }else if(e.getActionCommand().equals("保存退出")){
  76.                         fo.close();
  77.                         System.exit(0);
  78.                 }       
  79.         }
  80. }
复制代码
回复 使用道具 举报
  1. package cn;

  2. public class Run {

  3.         public static void main(String[] args) {
  4.                 Window win = new Window();
  5.         }

  6. }
复制代码
回复 使用道具 举报
够勤奋呐。。
回复 使用道具 举报
好东西,点个赞
回复 使用道具 举报
谢谢 分享  像你致敬                              
回复 使用道具 举报
不错不错!
回复 使用道具 举报
没学GUI,看你单词都编号了,如果想保存的话是否可以用一个文件记录单词编号,编号默认第一个,每次保存就更新记录的编号,找就从记录的编号开始找,
或者在单词文件第一个单词处写一个"记号",然后在每次点保存的时候就往所在单词处写一个"记号"并删除旧的"记号",然后每次开始时都在标记的地方开始.
才疏学浅,没法帮你写.
回复 使用道具 举报
感谢分享
回复 使用道具 举报
jiao 中级黑马 2015-2-20 00:13:55
12#
谢谢分享!
回复 使用道具 举报
xyf19881010 来自手机 中级黑马 2015-2-20 00:59:29
13#
谢谢分享
回复 使用道具 举报
支持下楼主
回复 使用道具 举报
BEIKOU 来自手机 中级黑马 2015-2-20 07:22:12
15#
顶一下,
回复 使用道具 举报
huangchunwei 来自手机 中级黑马 2015-2-20 08:00:37
16#
好东西,楼主棒棒哒。赞一个。
回复 使用道具 举报
看不懂,但是觉得很牛B的样子!
回复 使用道具 举报
多谢楼主分享啊,支持下
回复 使用道具 举报
楼主,好倪high啊。你报哪一期的?
回复 使用道具 举报
浮夸 来自手机 中级黑马 2015-3-1 19:40:51
20#
好棒{:3_46:}{:3_46:}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马