收藏 分销(赏)

java学习总结.doc

上传人:pc****0 文档编号:7784239 上传时间:2025-01-16 格式:DOC 页数:114 大小:735KB 下载积分:10 金币
下载 相关 举报
java学习总结.doc_第1页
第1页 / 共114页
java学习总结.doc_第2页
第2页 / 共114页


点击查看更多>>
资源描述
Java学习总结 Java学习总结 1 java.date 1 1.星期的做法 1 2.字符形式的日期转化为期格式 2 3.Calender 的使用 2 JAVA.awt 4 1.CardLayou的特殊使用 4 2.鼠标事件 10 3.键盘事件 16 4.GUI综合使用(包括组件及事件处理) 19 5.Java GridLayout的综合使用(java小计算器的设计) 28 Java 集合的学习 32 1.Java的LinkedListTest的使用 32 2.List集合 36 3.HashSet集合的使用 39 4.TreeSet集合的使用 40 5.Vector的使用 42 6.HashMap的使用(key-value) 44 7.Java 集合的综合使用,包括如何读取文件 45 Java.io 49 1.文件名的过滤 49 2.字符输入输出流 50 3.带进度条的输入输出流(包括线程的使用) 53 4.ObjectInputStream 与 ObjectOutputStream的使用 57 Java.lang.Thread 58 1.子线程问题 59 2.下面是一个赛跑问题,Runnable创建线程 61 3.Runnable两个小球,一个平抛,另一个自由落体 63 4.子线程与主线程的综合使用(实现计数功能) 65 5.Runnable 的使用 67 6.时间进度表 68 7.时间进度表的另一种做法 70 8.Synchnorized的使用,一个线程调用了它,这个线程运行结束后,其它线程才会开始 74 9.Wait 与 synchronized的用法 77 Java网络编程Socket 79 1.多客户端与服务器端通信(一个客户端可以和用户多次交互 79 2.服务器端与客户端在交互时,用的方法要一致,否则会出现异常 82 3.带有图形界面的客户端与服务器端交互(计算三角形面积) 85 4.客户端服务器端与服务器交互(可以多客户端多次交互) 89 5.服务器与客户端交互包括数据库 94 Java数据库端(java.sql) 100 1.数据库信息 100 2.mysql数据源连接 102 3.数据库中的JNDI用法 103 4.Java数据库大数据 105 5.Java的批量处理 108 6.Java的滚动处理 110 7.Java以excel为数据库的处理 112 java.date 1.星期的做法 public class DayOfWeekCalendar { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("日 一 二 三 四 五 六"); Calendar calendar=Calendar.getInstance(); //将日历翻至2011年7月1日 calendar.set(20011,6,1); //获取1日是星期几(get方法返回的是1表示星期日,星期六返回的是七) int DayOfWeek=calendar.get(Calendar.DAY_OF_WEEK)-1; String[] a=new String[31+DayOfWeek]; for(int i=0;i<DayOfWeek;i++){ a[i]=" "; } for(int i=DayOfWeek,n=1;i<31+DayOfWeek;i++,n++){ if(n<=9){ //加字是三个空格 a[i]=String.valueOf(n)+" "; } else{ a[i]=String.valueOf(n)+" "; } } for(int j=0;j<a.length;j++){ if(j%7==0){ System.out.println(""); } System.out.print(a[j]); } //了解random System.out.println(""); int num=(int)(Math.random()*100); System.out.println("random在0--1之间:"+num); //round返回最接近的整数 int num1=(int) Math.round(213.23); System.out.println(num1); } } -------------------------------------------------------------------------------------------------------- 2.字符形式的日期转化为期格式 public class PureDate { public static void main(String[] args) { // TODO Auto-generated method stub /** * Date在现在已有些过时,大多时候用Calendar的方法 */ Date date=new Date(); System.out.println(date); Date date1=new Date(1000); System.out.println(date1); Date date2=new Date(); SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String rr=format.format(date2); System.out.println(format.format(date2)); try { Date dd=format.parse(rr); System.out.println("dd="+dd); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } //目前时刻的毫秒数,是一个长整型北京时区 System.out.println(System.currentTimeMillis()); } } ------------------------------------------------------------------------------------ 3.Calender 的使用 public class TestCalendar { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /** * Calendar 类是一个抽象类, * 它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换 * 提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可 * 用毫秒值来表示, * 它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。 */ //获得Calendar一个通用的对象或初始化一个日历对象 Calendar calendar=Calendar.getInstance(); //获取毫秒数 long milSecond=calendar.getTimeInMillis(); System.out.println("毫秒数为:"+milSecond); String year=String.valueOf(calendar.get(Calendar.YEAR)), //注意求月数要加一 month=String.valueOf(calendar.get(Calendar.MONTH)+1), day=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); int hour=calendar.get(Calendar.HOUR_OF_DAY), minute=calendar.get(Calendar.MINUTE), second=calendar.get(Calendar.SECOND); System.out.println("现在的时间是:"); System.out.println(year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒"); //计算两个时间类相隔的时间 calendar.set(2011,7,13,19,10,20); long time2011s=calendar.getTimeInMillis(); calendar.set(2011,7,15,20,15,28); long time20117=calendar.getTimeInMillis(); long saday=(time20117-time2011s)/(1000*60*60*24); System.out.println("2011年7月13日19时10分20秒和2011年7月15日20时10分20秒相隔"+saday+"天"); } } JAVA.awt 1.CardLayou的特殊使用 class WindowMouseListener extends JFrame implements ItemListener{ private JComboBox choice; private JTextArea textarea; private JPanel pane1,pane,pane3; int index; String[] content={"","软件开发工程师","熟识编程语言开发技巧","3年","本科","软件设计师中级"}; GridLayout grid; CardLayout card; public WindowMouseListener(String string) { // TODO Auto-generated constructor stub setTitle(string); grid=new GridLayout(1,2); card=new CardLayout(); pane1=new JPanel(new GridLayout(3,1,0,150)); pane1.add(new JLabel("")); pane3=new JPanel(); pane3.add(new JLabel("简历说明立项:")); pane=new JPanel(); pane.setLayout(card); this.choice=new JComboBox(); this.choice.addItem("----选项----"); this.choice.addItem("Object"); this.choice.addItem("Qualification"); this.choice.addItem("Work experience"); this.choice.addItem("Education"); this.choice.addItem("Certification"); choice.setLocation(50, 300); pane3.add(choice); pane1.add(pane3); pane1.add(new JLabel("")); Container con=getContentPane(); con.setLayout(grid); con.add(pane1,BorderLayout.WEST); con.add(pane,BorderLayout.EAST); this.choice.addItemListener(this); index=this.choice.getItemCount(); for(int i=0;i<index;i++){ textarea=new JTextArea(); textarea.setText(content[i]); card.next(pane); pane.add(textarea,content[i]); } card.first(pane); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,500); setVisible(true); validate(); } @Override public void itemStateChanged(ItemEvent e) { // TODO Auto-generated method s if(e.getItemSelectable()==this.choice){ CardLayout car=(CardLayout) this.pane.getLayout(); car.show(pane,content[this.choice.getSelectedIndex()]); /* * 下面的方法也可以 textarea=new JTextArea(); int indextemp=this.choice.getSelectedIndex(); textarea.setText(content[indextemp]); card.next(pane); pane.add(textarea,"添加文本区");*/ } } } public class ResumeFrame { public static void main(String[] args) { // TODO Auto-generated method stub new WindowMouseListener("这是一个简历布局"); } } Java菜单的综合使用包括快捷键 打开 保存 剪切 复制 关于 粘贴 class FirstWindow extends Frame { Dialog diag; Clipboard clipboard; //剪切板 //PopupMenu此类实现能够在组件中的指定位置上动态弹出的菜单。 //正如继承层次关系所暗示的那样,任何可以使用 Menu 的地方都可以使用 PopupMenu。但是,如果使用像 Menu 这样的 PopupMenu //(例如,将其添加到 MenuBar),则不能调用该 PopupMenu 的 show。 PopupMenu pop;//右键鼠标促发的事件 class MenuActionListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==item12){ FileDialog dialog=new FileDialog(FirstWindow.this,"打开文件",FileDialog.LOAD); dialog.setVisible(true); } if(e.getSource()==item13){ FileDialog dialog=new FileDialog(FirstWindow.this,"保存文件",FileDialog.SAVE); dialog.setVisible(true); } if(e.getSource()==item14){ diag = new Dialog(FirstWindow.this,"关于",true); diag.setLayout(new GridLayout(3,1,10,10)); diag.add(new Label("软件名称:山寨记事本")); diag.add(new Label("版本号:1.0")); Panel p = new Panel(); Button b = new Button("ok"); b.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub diag.setVisible(false); } }); p.add(b); diag.add(p); diag.setBounds(300, 300, 300, 150); diag.setVisible(true); } if(e.getSource()==item15){ FirstWindow.this.setVisible(false); FirstWindow.this.dispose(); System.exit(0); } if(e.getSource()==item22){ String temp=area.getSelectedText(); StringSelection text=new StringSelection(temp); clipboard.setContents(text, null); int start=area.getSelectionStart(); int end=area.getSelectionEnd(); area.replaceRange("", start, end); } if(e.getSource()==item23){ //从剪切板获得数据 Transferable contents=clipboard.getContents(this); DataFlavor flavor=DataFlavor.stringFlavor; if(contents.isDataFlavorSupported(flavor)) try{ String str; str=(String) contents.getTransferData(flavor); area.append(str); } catch(Exception ee){ ee.printStackTrace(); } } if(e.getSource()==item24){ String temp=area.getSelectedText(); StringSelection text=new StringSelection(temp); clipboard.setContents(text, null); } } } MenuBar menubar; Menu menu1,menu2,menu3,menu4,menu5,menu32; MenuItem item11,item12,item13,item14,item15,item21,item22,item23,item24,item31, item32,item41,item51,item52,menuItem301,menuItem302,menuItem303; TextArea area; public FirstWindow(String s) { setTitle(s); //获得屏幕大小 Toolkit tool=getToolkit(); Dimension dim=tool.getScreenSize(); setBounds(0,0,dim.width,dim.height/2); clipboard=getToolkit().getSystemClipboard();//获取系统剪切板 menubar=new MenuBar(); area=new TextArea(); menu1=new Menu("文件"); menu2=new Menu("编辑"); menu3=new Menu("格式"); menu4=new Menu("查看"); menu5=new Menu("帮助"); item11=new MenuItem("新建"); item12=new MenuItem("打开(O)",new MenuShortcut(KeyEvent.VK_O)); //item12.setShortcut(new MenuShortcut(KeyEvent.VK_O)); //this.item12.setAccelerator(KeyStroke.getKeyStroke('O')); item12.addActionListener(new MenuActionListener()); item13=new MenuItem("保存(S)",new MenuShortcut(KeyEvent.VK_S)); item13.addActionListener(new MenuActionListener()); item14=new MenuItem("打印",new MenuShortcut(KeyEvent.VK_P)); item14.addActionListener(new MenuActionListener()); item15=new MenuItem("退出",new MenuShortcut(KeyEvent.VK_E)); item15.addActionListener(new MenuActionListener()); item21=new MenuItem("撤销"); item22=new MenuItem("剪切"); item22.addActionListener(new MenuActionListener()); item23=new MenuItem("粘贴"); item23.addActionListener(new MenuActionListener()); item24=new MenuItem("复制"); item24.addActionListener(new MenuActionListener()); item31=new MenuItem("自动换行"); menu32=new Menu("字体"); menuItem301=new MenuItem("左对齐"); menuItem302=new MenuItem("中对齐"); menuItem303=new MenuItem("右对齐"); menu32.add(menuItem301); menu32.add(menuItem302); menu32.add(menuItem303); item41=new MenuItem("状态栏"); item51=new MenuItem("帮助主题"); item52=new MenuItem("关于记事本"); item52.addActionListener(new MenuActionListener()); menu1.add(item11); menu1.add(item12); menu1.add(item13); menu1.add(item14); menu1.add(item15); menu2.add(item21); menu2.add(item22); menu2.add(item23); menu2.add(item24); menu3.add(item31); menu3.add(menu32); menu4.add(item41); menu5.add(item51); menu5.add(item52); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); menubar.add(menu5); pop=new PopupMenu("鼠标右键菜单"); pop.add("剪切"); pop.add("复制"); pop.add("粘贴"); FirstWindow.this.addMouseListener(new MouseAdapter(){ public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub if(e.isPopupTrigger()){ System.out.println("dfdgdf:"+e.getX()); pop.show(e.getComponent(),e.getX(),e.getY()); } } }); //this.add(pop); setMenuBar(menubar); add(area,BorderLayout.CENTER); setBackground(Color.gray); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ //System.exit(0); dispose(); } }); setVisible(true); } } public class MyWindowMenuItem { public static void main(String[] args) { // TODO Auto-generated method stub FirstWindow first=new FirstWindow("一个带菜单的窗口"); } } 2.鼠标事件 class WindowMouseMotion extends JFrame implements ActionListener,MouseListener,MouseMotionListener{ JButton button1,button2; JLabel label1; JTextField text; JPanel east,west; int x,y; public WindowMouseMotion(String string) { // TODO Auto-generated constructor stub setTitle(string); Container con=getContentPane(); //案例一 可以碰撞移动 east=new JPanel(new FlowLayout(FlowLayout.LEFT,150,0)); east.setLocation(0, 200); button1=new JButton("横纵坐标移动"); button1.addActionListener(this); button1.addMouseListener(this); button1.addMouseMotionListener(this); label1=new JLabel("可以被碰掉"); label1.addMouseListener(this); label1.addMouseMotionListener(this); east.add(button1); east.add(label1); con.add(east,BorderLayout.WEST); //案例二,可以被拖曳 west=new JPanel(new FlowLayout(FlowLayout.LEFT,50,0)); west.setLocation(600, 100); button2=new JButton("鼠标移动坐标"); button2.addMouseListener(this); button2.addMouseMotionListener(this); text=new JTextField("文本框的鼠标移动",10); text.addMouseListener(this); text.addMouseMotionListener(this); west.add(button2); west.add(text); con.add(west,BorderLayout.EAST); setSize(1000,800); setVisible(true); validate(); } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub Component com=null; com=(Component) e.getSource(); x=e.getX(); y=e.getY(); } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub Component com=null; com=(Component) e.getSource(); //x是组件相对于所包含容器的左边界 //返回事件相对于源组件的水平 x 坐标。 x=e.getX(); System.out.println("x:"+x); //返回事件相对于源组件的垂直 y 坐标。 y=e.getY(); //this.getHeight返回组件的当前高度。此方法优于 component.getBounds().height //或 component.getSize().height 方法,因为它不会导致任何的堆分配。 int a=(int) com.getLocation().getX(); System.out.println("a:"+a); if(x==0 ){ com.setLocation(0,y); return; } if(y==0){ com.setLocation(x, 0); return; } int w=com.getSize().width, h=com.getSize().height; com.setLocation(x-w/2,y-h/2); } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==button1){ //以 Rectangle 对象的形式获取组件的边界。边界指定此组件的宽度、高度和相对于其父级的位置。 //表示组件边界的矩形 Rectangle rect=button1.getBounds(); x=(int) rect.getX(); y=(int) rect.getY(); //intersects 计算此 Rectangle 与指定 Rectangle 的交集
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服