十天来学习java的心得体会
有关学习java是几天来的心得体会:
- 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄、同学)。在其中也发现了一些不错的论坛和资料并学会了写博客,把自己遇到的问题的解决办法以及一些问题的好的资料写出来,以便以后的重复工作。甲骨文有个官方的参考手册(API),但是却没有每个分栏的搜索功能。IBM有一些资源,也很好。
- 另外学习完基本的语法过后就要学会自己动手编程,这一点很重要,这有这样才能把这些东西变成自己的东西,用java写出自己想实现的功能,这里也有一些资源,比如源码爱好者论坛,ACM大赛(这个要求比较高,要等自己基础更扎实了才去做)。
- 网上去看别人的代码一定要把别人的思路搞清楚,分析代码时可以在稿纸上用文本分析等,也可以用注释的方法。另外一定要学会调试程序,这一点相当重要。
- 看过的书籍以后还要重新看,应该是多看几遍才好,每次编程感觉自己不足时就去看相应的书籍,下一步应该去看有关面向对象程序设计的内容,深化对java面向对象的认识。
- 经过这十天的学习遇到问题来看自己薄弱或者说java基础知识在开发中很重要的知识点就是:变量的作用范围(以后多看看相关的博客)。
- 对于自己编写的编程实例是一个记事本小程序。以下是这个记事本小程序的类图:(其源代码见最后)
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的心得体会的更多相关文章
- 从实例学习 Go 语言、"并发内容" 学习笔记及心得体会、Go指南
第一轮学习 golang "并发内容" 学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...
- Java学习第一周心得体会
一周的学习很快就过去了,说说我个人的总结吧! 下面几个是我觉得需要牢牢记住的 1.Java的执行机制:先编译.再解释 2.变量以及基本数据类型 3.强类型编程语言:要求变量的类型与值的类型要一致 4. ...
- 从实例学习 Go 语言、"基础与进阶" 学习笔记及心得体会、Go指南
第一轮学习 golang "基础与进阶"学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...
- 和初学者交流学习java语言一些体会。
对初学者,自己学习java语言的一些体会: 1.工欲善其事,必先利其器.先把Java学习工具准备好,包括集成开发环境IDE,自己觉得MyEclipse比较适合,还有数据库,Oracle或MySQL,S ...
- Java程序心得体会
学习Java是一件快乐的事情,刚开始学习的时候还有点难,后来慢慢熟悉了Java的程序操作,在错误中获得技巧,一次又一次的失败,让我对Java产生了兴趣,现在对Java既陌生又熟悉,我相信我会喜欢上Ja ...
- 学习java的一点体会
在这几天的做实验.读书.写笔记的过程中我发现一个问题,就是我的知识面太窄,就比如说,学的知识都是一块一块的,没有能力去把它串起来,虽然学的很快,也写笔记总结,但马上就忘了,我想java是一个体系,需要 ...
- 第一次java小考心得体会
本周四Java第一次上课,测试了一个ATM程序,从两点半开始到五点半结束. 整整三个小时,结果怎么说呢,大概可以用惨不忍睹来形容吧. 因为之前有一个测试样卷,以为考试内容不会变的我,只是把学生信息管理 ...
- java equals 心得体会
要记住最有用的一点: equals 在已经被系统定义好的类中 是已经被重写好了的 父类中的 equals方法是比较的两个对象是否指向同一引用 在被定义除了父类以外比较的是两个对象的内容 因此 人为定义 ...
- AngularJS心得体会
AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...
随机推荐
- POJ 1258
http://poj.org/problem?id=1258 今天晚上随便找了两道题,没想到两道都是我第一次碰到的类型———最小生成树.我以前并没有见过,也不知道怎么做,然后就看书,思路很容易理解 但 ...
- python判断文件和文件夹是否存在
import osos.path.isfile('test.txt') #如果不存在就返回Falseos.path.exists(directory) #如果目录或文件不存在就返回False
- Win7下打开计算机管理时出现错误的解决办法
计算机管理是用户在使用计算机时经常用到的一个选项,可以在桌面上右击计算机,选择"管理"打开.也可以在运行框中输入:compmgmt.msc打开计算机管理程序,里面有常用系统工具如用 ...
- ACM/ICPC 之 Prim范例(ZOJ1586-POJ1789(ZOJ2158))
两道Prim解法范例题型,简单的裸Prim,且两题相较以边为重心的Kruskal解法而言更适合以点为重心扩展的Prim解法. ZOJ1586-QS Network 题意:见Code 题解:直接的MST ...
- Java for LeetCode 215 Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- winrt获取文件MD5码
//小文件 public static string ComputeMD5(byte[] bytes) { var alg = HashAlgorithmProvider.OpenAlgorithm( ...
- 如何让ListView的item不可点击
原文链接:http://blog.csdn.net/zhangfei_jiayou/article/details/6972752 1. 如果是listView的id是使用系统默认的id,如下, 则可 ...
- android快速开发--常用utils类
1.日志工具类L.java package com.zhy.utils; import android.util.Log; /** * Log统一管理类 * * * */ public class L ...
- myeclipse破解
由于内容比较多,我就直接转载了 ,同时感谢原博主 http://blog.itpub.net/27042095/viewspace-1164998/
- Quatre 2D的绘图功能的三个步骤(上下文,绘图,渲染)
一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法. 画线的三个步骤: ( ...