十天来学习java的心得体会

有关学习java是几天来的心得体会:

  1. 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄、同学)。在其中也发现了一些不错的论坛和资料并学会了写博客,把自己遇到的问题的解决办法以及一些问题的好的资料写出来,以便以后的重复工作。甲骨文有个官方的参考手册(API),但是却没有每个分栏的搜索功能。IBM有一些资源,也很好。
  2. 另外学习完基本的语法过后就要学会自己动手编程,这一点很重要,这有这样才能把这些东西变成自己的东西,用java写出自己想实现的功能,这里也有一些资源,比如源码爱好者论坛,ACM大赛(这个要求比较高,要等自己基础更扎实了才去做)。
  3. 网上去看别人的代码一定要把别人的思路搞清楚,分析代码时可以在稿纸上用文本分析等,也可以用注释的方法。另外一定要学会调试程序,这一点相当重要。
  4. 看过的书籍以后还要重新看,应该是多看几遍才好,每次编程感觉自己不足时就去看相应的书籍,下一步应该去看有关面向对象程序设计的内容,深化对java面向对象的认识。
  5. 经过这十天的学习遇到问题来看自己薄弱或者说java基础知识在开发中很重要的知识点就是:变量的作用范围(以后多看看相关的博客)。
  6. 对于自己编写的编程实例是一个记事本小程序。以下是这个记事本小程序的类图:(其源代码见最后)

 

 

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.EventQueue;

import java.awt.TextField;

import javax.swing.AbstractAction;

import javax.swing.JDialog;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenuBar;

import javax.swing.JMenu;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextPane;

import javax.swing.KeyStroke;

import java.awt.event.KeyEvent;

import java.awt.event.InputEvent;

import java.awt.event.ActionEvent;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import javax.swing.text.DefaultStyledDocument;

import javax.swing.JButton;

import java.awt.Toolkit;

 

public class MyNotepad extends JFrame {

 

    /**

     *

     */

    private static final long serialVersionUID = 1L;

    private JFrame frame;

    private String value;

    JTextPane textPane = new JTextPane();

   

    JFileChooser filechooser = new JFileChooser(); //文件选择器

   

   

    JFrame jf=new JFrame();

    TextField jtf=new TextField();

    int start=0;

 

 

    /**

     * Launch the application.

     */

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {

                    MyNotepad window = new MyNotepad();

                    window.frame.setVisible(true);

                } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        });

       

    }

 

    /**

     * Create the application.

     */

    public MyNotepad() {

        initialize();

    }

 

    /**

     * Initialize the contents of the frame.

     */

    private void initialize() {

        frame = new JFrame("小康编辑器");

        frame.setForeground(new Color(153, 204, 51));

        frame.setBackground(new Color(153, 204, 51));

    frame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\zqh\\workspace\\javalearn\\src\\ico\\Notepad.png"));

        frame.setBounds(100, 100, 450, 300);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JScrollPane scrollPane = new JScrollPane();

        frame.getContentPane().add(scrollPane);

 

//      执行弹出的查找菜单

        jf.getContentPane().add(jtf,BorderLayout.CENTER);

        JButton jb=new JButton("Find");

        jb.addActionListener(new findbuttonAciton());

        jf.getContentPane().add(jb,BorderLayout.SOUTH);

//      jf.setBounds(150, 150, 200, 200);

        jf.setLocation(200,200);

//      jf.setSize(50, 50);

        jf.pack();

//      执行弹出的查找菜单结束

       

//      JTextPane textPane = new JTextPane();

        scrollPane.setViewportView(textPane);

        JMenuBar menuBar = new JMenuBar();

        frame.setJMenuBar(menuBar);

 

        JMenu mnFile = new JMenu("File");

        menuBar.add(mnFile);

 

        JMenuItem mntmNew = new JMenuItem("new");

        mntmNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));

        mntmNew.addActionListener(new NewAction());

        mnFile.add(mntmNew);

 

        JMenuItem mntmOpen = new JMenuItem("open");

        mntmOpen.addActionListener(new OpenAction() );

        mntmOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));

        mnFile.add(mntmOpen);

 

        JMenuItem mntmSave = new JMenuItem("save");

        mntmSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));

        mntmSave.addActionListener(new SaveAction() );

        mnFile.add(mntmSave);

 

        JMenuItem mntmClose = new JMenuItem("close");

        mntmClose.addActionListener(new ExitAction());

        mnFile.add(mntmClose);

 

        JMenu mnEdit = new JMenu("Edit");

        menuBar.add(mnEdit);

 

        JMenuItem mntmCopy = new JMenuItem("copy");

        mntmCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));

        mntmCopy.addActionListener(new CopyAction());

        mnEdit.add(mntmCopy);

 

        JMenuItem mntmCut = new JMenuItem("cut");

        mntmCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));

        mntmCut.addActionListener(new CutAction());

        mnEdit.add(mntmCut);

 

        JMenuItem mntmPaste = new JMenuItem("paste");

        mntmPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));

        mntmPaste.addActionListener(new PasteAction());

        mnEdit.add(mntmPaste);

 

        JMenuItem mntmFind = new JMenuItem("find");

        mntmFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK));

        mntmFind.addActionListener(new FindAction());

        mnEdit.add(mntmFind);

       

        JMenu mnHelp = new JMenu("Help");

        menuBar.add(mnHelp);

       

        JMenuItem mntmAbout = new JMenuItem("about");

        mnHelp.add(mntmAbout);

        mntmAbout.addActionListener(new AboutAction());

 

    }

 

    class NewAction extends AbstractAction {

        /**

         *

         */

        private static final long serialVersionUID = 1L;

 

        // 新建文件命令

       

        public void actionPerformed(ActionEvent e) {

            textPane.setDocument(new DefaultStyledDocument()); // 清空文档

 

             

        }

    }

 

    class OpenAction extends AbstractAction { // 打开文件命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

        public void actionPerformed(ActionEvent e) {

            int i = filechooser.showOpenDialog(frame ); // 显示打开文件对话框

            if (i == JFileChooser.APPROVE_OPTION) { // 点击对话框中打开选项

                File f = filechooser.getSelectedFile(); // 得到选择的文件

                try {

                    InputStream is = new FileInputStream(f); // 得到文件输入流

                    textPane.read(is, "d"); // 读入文件到文本窗格

                } catch (Exception ex) {

                    ex.printStackTrace(); // 输出出错信息

                }

            }

        }

    }

 

    class SaveAction extends AbstractAction { // 保存命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

       

        public void actionPerformed(ActionEvent e) {

            int i = filechooser.showSaveDialog(frame ); // 显示保存文件对话框

            if (i == JFileChooser.APPROVE_OPTION) { // 点击对话框中保存按钮

                File f = filechooser.getSelectedFile(); // 得到选择的文件

                try {

                    @SuppressWarnings("resource")

                    FileOutputStream out = new FileOutputStream(f); // 得到文件输出流

                    out.write(textPane.getText().getBytes()); // 写出文件

                } catch (Exception ex) {

                    ex.printStackTrace(); // 输出出错信息

                }

            }

        }

    }

 

    class ExitAction extends AbstractAction { // 退出命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

   

        public void actionPerformed(ActionEvent e) {

            System.exit(0); // 退出程序

        }

    }

 

    class CutAction extends AbstractAction { // 剪切命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

   

        public void actionPerformed(ActionEvent e) {

            textPane.cut(); // 调用文本窗格的剪切命令

        }

    }

 

    class CopyAction extends AbstractAction { // 拷贝命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

        public void actionPerformed(ActionEvent e) {

            textPane.copy(); // 调用文本窗格的拷贝命令

           

        }

    }

 

    class PasteAction extends AbstractAction { // 粘贴命令

        /**

             *

             */

        private static final long serialVersionUID = 1L;

 

       

        public void actionPerformed(ActionEvent e) {

            textPane.paste(); // 调用文本窗格的粘贴命令

        }

    }

    class FindAction extends AbstractAction{

        /**

         *

         */

        private static final long serialVersionUID = 1L;

 

        public void actionPerformed(ActionEvent e) {

            //这里写弹出的查找功能的窗口

           

                jf.setVisible(true);

            jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

 

        }

       

       

    }

   

class findbuttonAciton extends AbstractAction{

       

        /**

         *

         */

        private static final long serialVersionUID = 1L;

 

        public void actionPerformed(ActionEvent e){

            value=textPane.getText();

 

            //这里实现查找功能

             //这里执行开始以及下一个查找功能

             String temp=jtf.getText();

   

            int s=value.indexOf(temp,start);   //使用indexOf函数产找并返回位置索引

            if(value.indexOf(temp,start)!=-1){

                textPane.setSelectionStart(s);

                textPane.setSelectionEnd(s+temp.length());

                textPane.setSelectedTextColor(Color.GREEN);

                start=s+1;

                value=value.substring(s+temp.length());//不能截取字串

            }else {

                JOptionPane.showMessageDialog(jf, "查找完毕!", "提示", 0);

                jf.dispose();

            }

           

        }

    }

   

class AboutAction extends AbstractAction{

   

    /**

     *

     */

    private static final long serialVersionUID = 1L;

 

    public void actionPerformed(ActionEvent e){

        //

 

        JDialog jd=new JDialog(frame,"java实验");

        jd.setSize(200,200);

        JLabel l=new JLabel("hello,小康!");

        jd.getContentPane().add(l,BorderLayout.CENTER);

        jd.setLocation(100,200);

        jd.setSize(300,300);

        jd.setVisible(true);

        jd.pack();

        jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

 

       

       

    }

   

}

}

posted @ 2013-07-19 10:09  wybert  阅读(412)  评论(0编辑  收藏  举报