[Java] java JTextArea中获得光标所在行数 →→→→→进入此内容的聊天室

来自 , 2020-11-03, 写在 Java, 查看 111 次.
URL http://www.code666.cn/view/1587965f
  1. import java.awt.BorderLayout;
  2. import java.awt.Rectangle;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JScrollPane;
  9. import javax.swing.JTextArea;
  10. import javax.swing.text.BadLocationException;
  11.  
  12. /**
  13.  * JTextArea中获得光标所处的行数
  14.  * @author 五斗米 <如转载请保留作者和出处>
  15.  * @blog <a href="http://blog.csdn.net/mq612">http://blog.csdn.net/mq612
  16.  */
  17.  
  18. public class Test extends JFrame {
  19.  
  20.  private static final long serialVersionUID = -2397593626990759111L;
  21.  
  22.  private JScrollPane scrollPane = null;
  23.  
  24.  private JTextArea text = null;
  25.  
  26.  private JButton button = null;
  27.  
  28.  public Test() {
  29.   super("JTextArea Row Test");
  30.   text = new JTextArea(
  31.     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
  32.   text.setLineWrap(true);
  33.   scrollPane = new JScrollPane(text);
  34.   this.getContentPane().add(scrollPane);
  35.   button = new JButton("获取光标所处的行数");
  36.   button.addActionListener(new ActionListener() {
  37.    public void actionPerformed(ActionEvent arg0) {
  38.     try {
  39.      Rectangle rec = text.modelToView(text.getCaretPosition());
  40.      System.out.println(rec.y / rec.height + 1);
  41.     } catch (BadLocationException e) {
  42.      e.printStackTrace();
  43.     }
  44.    }
  45.   });
  46.   this.getContentPane().add(button, BorderLayout.NORTH);
  47.   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  48.   this.setSize(300, 200);
  49.   this.setVisible(true);
  50.  }
  51.  
  52.  public static void main(String args[]) {
  53.   new Test();
  54.  }
  55.  
  56. }
  57.  
  58. //源代码片段来自云代码http://yuncode.net
  59.                        

回复 "java JTextArea中获得光标所在行数"

这儿你可以回复上面这条便签

captcha