十天来学习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后开始着手改之前的项目代码,这里大概说一下这一周学习 ...
随机推荐
- mybaits in
mybatis中的in: <select id="getByInventoryIds" resultMap="beanMap"> SELECT * ...
- hnu11187
AC自动机+DP #include <cstdio> #include <queue> #include <cstring> using namespace std ...
- irc操作小记
IRC客户端 HexChat 跨平台支持,目前正在Windows上使用,暂无不满意的地方 polari 支持的命令太少了,功能有限. Empathy 重量级,支持各种消息协议 weechat/irss ...
- shell 脚本编程概述
环境变量 ? 退出状态码 (成功) (未知错误) (误用 shell 命令) (命令不可执行) (没找到命令) (无效退出状态) +x( linux 信号 X 的严重错误) ( ctrl c 终止程序 ...
- 屏幕截图、录像FastStone Capture
作为一款极其优秀好用的屏幕截图软件,FastStone Capture 具有体积小巧.功能强大.操作简便等优点,其方便的浮动工具条和便捷的快捷键堪称完美结合,截图后的图片编辑与保存选项也特别丰富和方便 ...
- JPA查询语句(转载)
JPQL就是一种查询语言,具有与SQL 相类似的特征,JPQL是完全面向对象的,具备继承.多态和关联等特性,和hibernate HQL很相似. 查询语句的参数 JPQL语句支持两种方式的参数定义 ...
- 【python】入门学习(三)
for循环 for i in range(): #注意冒号 range中默认从0开始 或者从指定的数字开始 到给定数字的前一个数字结束 递增递减皆是如此 for循环提供变量的自动初始化 for i ...
- Hibernate双向多对多对象关系模型映射
1 双向many-to-many 业务模型: 描述员工和项目 一个员工同时可以参与多个项目 一个项目中可以包含多个员工 分析:数据库的数据模型,通过中间关系表,建立两个one-to-many构成man ...
- ios添加百度地图方法
Hello BaiduMapiOS SDK 引入头文件 引入静态库文件 引入系统framework 引入mapapi.bundle资源文件 初始化BMKMapManager 创建BMKMapView ...
- 困难的串(dfs)
困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如, BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...