仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1368|回复: 19
打印 上一主题 下一主题

[学习教程] 了解下JAVA的JTextArea中显现LineNumber

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!
  1. //packagetryLineNumber;
  2. importjava.awt.BorderLayout;
  3. importjava.awt.Dimension;
  4. importjava.awt.Graphics;
  5. importjava.awt.Point;
  6. importjavax.swing.JFrame;
  7. importjavax.swing.JTextArea;
  8. importjavax.swing.JPanel;
  9. importjavax.swing.JScrollPane;
  10. //importjavax.swing.JTextPane;
  11. importjavax.swing.text.BadLocationException;
  12. importjavax.swing.text.Document;
  13. /**
  14. *AclassillustratingrunninglinenumbercountonJTextPane.Nothing
  15. ispaintedonthepaneitself,
  16. *butaseparateJPanelhandlespaintingthelinenumbers.
  17. *
  18. *@authorDanielSj?blom
  19. *CreatedonMar3,2004
  20. *Copyright(c)2004
  21. *@version1.0
  22. */
  23. publicclassLineNrextendsJPanel
  24. {
  25. //forthissimpleexperiment,wekeepthepane+scrollpaneasmembers.
  26. //JTextPanepane;
  27. JTextAreapane;
  28. JScrollPanescrollPane;
  29. publicLineNr()
  30. {
  31. super();
  32. setMinimumSize(newDimension(30,30));
  33. setPreferredSize(newDimension(30,30));
  34. setMinimumSize(newDimension(30,30));
  35. //pane=newJTextPane()//weneedtooverridepaintsothatthelinenumbersstayinsync
  36. pane=newJTextArea()
  37. {
  38. publicvoidpaint(Graphicsg)
  39. {
  40. super.paint(g);
  41. LineNr.this.repaint();
  42. }
  43. };
  44. scrollPane=newJScrollPane(pane);
  45. }
  46. publicvoidpaint(Graphicsg)
  47. {
  48. super.paint(g);
  49. //Weneedtoproperlyconvertthepointstomatchtheviewport
  50. //Readdocsforviewport
  51. intstart=pane.viewToModel(scrollPane.getViewport().getViewPosition());//startingposindocument
  52. intend=
  53. pane.viewToModel(
  54. newPoint(
  55. scrollPane.getViewport().getViewPosition().x+pane.getWidth(),
  56. scrollPane.getViewport().getViewPosition().y+pane.getHeight()));
  57. //endposindoc
  58. //translateoffsetstolines
  59. Documentdoc=pane.getDocument();
  60. intstartline=doc.getDefaultRootElement().getElementIndex(start)+1;
  61. intendline=doc.getDefaultRootElement().getElementIndex(end)+1;
  62. intfontHeight=g.getFontMetrics(pane.getFont()).getHeight();
  63. intfontDesc=g.getFontMetrics(pane.getFont()).getDescent();
  64. intstarting_y=-1;
  65. try
  66. {
  67. starting_y=pane.modelToView(start).y-
  68. scrollPane.getViewport().getViewPosition().y+fontHeight-fontDesc;
  69. }
  70. catch(BadLocationExceptione1)
  71. {
  72. e1.printStackTrace();
  73. }
  74. for(intline=startline,y=starting_y;line<=endline;y+=fontHeight,line++)
  75. {
  76. g.drawString(Integer.toString(line),0,y);
  77. }
  78. }
  79. //testmain
  80. publicstaticvoidmain(String[]args)
  81. {
  82. JFrameframe=newJFrame();
  83. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  84. frame.getContentPane().setLayout(newBorderLayout());
  85. finalLineNrnr=newLineNr();
  86. frame.getContentPane().add(nr,BorderLayout.WEST);
  87. frame.getContentPane().add(nr.scrollPane,BorderLayout.CENTER);
  88. frame.pack();
  89. frame.setSize(newDimension(400,400));
  90. frame.show();
  91. }
  92. }
复制代码
多谢指点,其实我对.net网页编程和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 10:25:10 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
小妖女 该用户已被删除
板凳
发表于 2015-1-21 10:54:19 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-24 15:57:11 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
乐观 该用户已被删除
5#
发表于 2015-2-2 07:44:52 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
柔情似水 该用户已被删除
6#
发表于 2015-2-7 16:59:32 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
不帅 该用户已被删除
7#
发表于 2015-2-11 08:22:18 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
若天明 该用户已被删除
8#
发表于 2015-3-2 01:34:56 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
活着的死人 该用户已被删除
9#
发表于 2015-3-11 01:41:37 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
莫相离 该用户已被删除
10#
发表于 2015-3-17 18:09:35 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小魔女 该用户已被删除
11#
发表于 2015-3-19 01:22:06 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
若相依 该用户已被删除
12#
发表于 2015-3-26 20:21:41 | 只看该作者
是一种突破用户端机器环境和CPU
只想知道 该用户已被删除
13#
发表于 2015-4-16 22:51:11 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-17 04:52:44 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
愤怒的大鸟 该用户已被删除
15#
发表于 2015-4-25 10:34:30 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
兰色精灵 该用户已被删除
16#
发表于 2015-4-28 11:23:03 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
变相怪杰 该用户已被删除
17#
发表于 2015-5-1 13:10:30 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
透明 该用户已被删除
18#
发表于 2015-5-3 15:54:33 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
再见西城 该用户已被删除
19#
 楼主| 发表于 2015-5-10 22:28:14 | 只看该作者
是一种为 Internet发展的计算机语言
飘灵儿 该用户已被删除
20#
发表于 2015-6-22 04:08:04 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 00:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表