Java JTextArea获得了整条生产线

Java JTextArea获得了整条生产线,java,jtextarea,swing,Java,Jtextarea,Swing,如何从JTA中获取所选行?我想您可以使用getLineStartOffset(int-line)和getLineEndOffset(int-line)从getText()返回的字符串中生成特定行的子字符串 如果您的意思是想知道用户选择了什么(使用鼠标/键盘): getSelectedText()应该会给您这个提示。为什么不将这些行拆分为令牌呢。然后,如果你知道你想要的行号,你可以通过一个字符串数组来访问它 public class JTALineNum extends JFrame{ JTex

如何从JTA中获取所选行?

我想您可以使用getLineStartOffset(int-line)和getLineEndOffset(int-line)从getText()返回的字符串中生成特定行的子字符串

如果您的意思是想知道用户选择了什么(使用鼠标/键盘):
getSelectedText()应该会给您这个提示。

为什么不将这些行拆分为令牌呢。然后,如果你知道你想要的行号,你可以通过一个字符串数组来访问它

public class JTALineNum extends JFrame{
 JTextArea jta = null;
 JButton button = null;

 public JTALineNum(){
  jta = new JTextArea();
  button = new JButton("Hit Me");

  button.addActionListener(new ButtonListener());

  add(jta, BorderLayout.CENTER);
  add(button, BorderLayout.SOUTH);
  setSize(200,200);
  setVisible(true);
 }

 private class ButtonListener implements ActionListener{

  public void actionPerformed(ActionEvent e) {
   String text = jta.getText();
   String[] tokens = text.split("\n");
   for(String i : tokens){
    System.out.println("Token:: " + i);
   }
  }
 }

 public static void main(String args[]){
  JTALineNum app = new JTALineNum();
  app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

您接受的解决方案不是很有效。+1表示直接从JTextArea API获取的更有效的解决方案。