有关学习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);

}

}

}

十天来学习java的心得体会的更多相关文章

  1. 从实例学习 Go 语言、"并发内容" 学习笔记及心得体会、Go指南

    第一轮学习 golang "并发内容" 学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...

  2. Java学习第一周心得体会

    一周的学习很快就过去了,说说我个人的总结吧! 下面几个是我觉得需要牢牢记住的 1.Java的执行机制:先编译.再解释 2.变量以及基本数据类型 3.强类型编程语言:要求变量的类型与值的类型要一致 4. ...

  3. 从实例学习 Go 语言、"基础与进阶" 学习笔记及心得体会、Go指南

    第一轮学习 golang "基础与进阶"学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...

  4. 和初学者交流学习java语言一些体会。

    对初学者,自己学习java语言的一些体会: 1.工欲善其事,必先利其器.先把Java学习工具准备好,包括集成开发环境IDE,自己觉得MyEclipse比较适合,还有数据库,Oracle或MySQL,S ...

  5. Java程序心得体会

    学习Java是一件快乐的事情,刚开始学习的时候还有点难,后来慢慢熟悉了Java的程序操作,在错误中获得技巧,一次又一次的失败,让我对Java产生了兴趣,现在对Java既陌生又熟悉,我相信我会喜欢上Ja ...

  6. 学习java的一点体会

    在这几天的做实验.读书.写笔记的过程中我发现一个问题,就是我的知识面太窄,就比如说,学的知识都是一块一块的,没有能力去把它串起来,虽然学的很快,也写笔记总结,但马上就忘了,我想java是一个体系,需要 ...

  7. 第一次java小考心得体会

    本周四Java第一次上课,测试了一个ATM程序,从两点半开始到五点半结束. 整整三个小时,结果怎么说呢,大概可以用惨不忍睹来形容吧. 因为之前有一个测试样卷,以为考试内容不会变的我,只是把学生信息管理 ...

  8. java equals 心得体会

    要记住最有用的一点: equals 在已经被系统定义好的类中 是已经被重写好了的 父类中的 equals方法是比较的两个对象是否指向同一引用 在被定义除了父类以外比较的是两个对象的内容 因此 人为定义 ...

  9. AngularJS心得体会

    AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...

随机推荐

  1. 【leetcode】Convert Sorted List to Binary Search Tree

    Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in as ...

  2. [转载]Linux命令笔记

    *以下内容均来自于网络转载,感谢原作者分享 <对Linux新手非常有用的20个命令> 传送门 英文原文为“Switching From Windows to Nix or a Newbie ...

  3. HTML5 video 支持air play

    < video src="/path/to/video.mp4" x-webkit-airplay="allow" preload controls> ...

  4. Spring配置数据源

    Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0.可以在Spring配置文件中利用这两者中任何一个配置数据源. DBCP数据源 DBCP类包位于 ...

  5. Spring@Autowired注解与自动装配

    1   配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss ...

  6. web开发,关于jsp的常见问题,重复提交,防止后退。

    看了网上的,有几种方法:1 在你的表单页里HEAD区加入这段代码: <META HTTP-EQUIV="pragma" CONTENT="no-cache" ...

  7. 【leetcode】Integer to Roman & Roman to Integer(easy)

    Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...

  8. mysql无法启动

    当在安装mysql服务时,有时会遇到恶心的PID错误而导致安装后无法启动以下为针对mysql-5.5版本在安装mysql时所遇到的问题的解决方法. 1.可能是/usr/local/mysql/data ...

  9. 解决Idea创建maven-archetype-webapp项目无java目录的问题

    一.背景 在适用IDEA创建maven-archetype-webapp项目的时候,创建完成后发现在main文件夹下没有java源文件夹,不少小伙伴也遇到该问题,但不知道怎么解决,下面我就来分享解决步 ...

  10. 用 MyEclipse 开发 Spring 入门操作

    何为Spring Spring框架是一个轻量级的控制反转(IOC)技术和面向切面编程(AOP)技术的容器框架,利用Spring框架可以实现对象的生命周期管理和分离应用系统中的业务逻辑组件和通用的技术服 ...