为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

java显示行号

2017-09-26 4页 doc 16KB 17阅读

用户头像

is_721103

暂无简介

举报
java显示行号java显示行号 package pack03; //JTextArea ÖÐÏÔÊ?ÐкŠ//package tryLineNumber; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.J...
java显示行号
java显示行号 package pack03; //JTextArea ÖÐÏÔÊ?ÐкŠ//package tryLineNumber; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.text.BadLocationException; import javax.swing.text.Document; public class LineNr extends JPanel { /** * */ private static final long serialVersionUID = 5725882114351953053L; JTextArea pane; JScrollPane scrollPane; public LineNr() { super(); setMinimumSize(new Dimension(30, 30)); setPreferredSize(new Dimension(30, 30)); setMinimumSize(new Dimension(30, 30)); pane = new JTextArea() { /** * */ private static final long serialVersionUID = 1L; public void paint(Graphics g) { super.paint(g); LineNr.this.repaint(); } }; scrollPane = new JScrollPane(pane); } public void paint(Graphics g) { super.paint(g); int start =pane.viewToModel(scrollPane.getViewport().getViewPosition()); int end = pane.viewToModel( new Point( scrollPane.getViewport().getViewPosition().x + pane.getWidth(), scrollPane.getViewport().getViewPosition().y + pane.getHeight())); Document doc = pane.getDocument(); int startline = doc.getDefaultRootElement().getElementIndex(start) + 1; int endline = doc.getDefaultRootElement().getElementIndex(end) + 1; int fontHeight = g.getFontMetrics(pane.getFont()).getHeight(); int fontDesc = g.getFontMetrics(pane.getFont()).getDescent(); int starting_y = -1; try { starting_y = pane.modelToView(start).y - scrollPane.getViewport().getViewPosition().y + fontHeight - fontDesc; } catch (BadLocationException e1) { e1.printStackTrace(); } for (int line = startline, y = starting_y; line <= endline; y += fontHeight, line++) { g.drawString(Integer.toString(line), 0, y); } } // test main public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(new BorderLayout()); final LineNr nr = new LineNr(); frame.getContentPane().add(nr, BorderLayout.WEST); frame.getContentPane().add(nr.scrollPane, BorderLayout.CENTER); frame.pack(); frame.setSize(new Dimension(400, 400)); frame.setVisible(true); } }
/
本文档为【java显示行号】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索