如何使JTextArea或JTextPane列可单击?

时间:2012-02-25 00:21:50

标签: java swing mouselistener jtextcomponent

我正在开发一个非常基础的Java视频播放器项目,这是我的课程。我有2个JTextPanes:1个用于列出所有视频,1个用于创建播放列表。

到目前为止,我可以将视频添加到播放列表的唯一方法是将视频ID(来自数据库)放在文本字段中,然后单击“添加”按钮。但是我希望我的播放器能够通过单击JTextPane(所有视频)的列,将视频添加到JTextPane或其他任何内容(如果您认为更好(播放列表))。我想我必须将鼠标监听器添加到JTextPane。

但是如何将鼠标侦听器添加到JTextPane的每个列?任何帮助&建议非常感谢!

提前致谢!

2 个答案:

答案 0 :(得分:4)

您可能希望更改为使用JList,因为您正在处理所有视频的列表。

然后,您可以轻松找到用户选择的视频,使用JList.getSelectedItem()并将其添加到播放列表中。

您不能将MouseListener添加到JTextPane的特定行(您是指行,而不是列?),只能添加到整个窗格。但是,您可以使用JTextPane.viewToModel(Point p)找出用户点击文本的位置。然而,这可能是一种不必要的复杂的列表方式。

答案 1 :(得分:2)

您可以使用它来获取JTextPane中的行/列位置 http://java-sl.com/tip_row_column.html