• 十天来学习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);

     

           

           

        }

       

    }

    }

  • 相关阅读:
    切分文本行
    oracle 导出【转】
    SQL 表A不在表B记录
    Oracle 数据库操作
    oracle 跨表更新
    WPF : ViewPort3D, ModelVisual3D XAML example
    WPF : 3D 最简单的WPF 3D
    WPF : StoryBoard用法
    WPF/SilverLight学习计划
    WPF : 3D 给GeometryModel3D对象贴图
  • 原文地址:https://www.cnblogs.com/wybert/p/3199981.html
Copyright © 2020-2023  润新知