2013-02-18 2 views
1

Привет, я делаю программу и используя TableModel. У меня есть 6 столбцов с строкой. Я хочу, чтобы шестнадцатая строка столбца выглядела как URL. Когда я имею в виду выглядеть как URL, я имею в виду превратить его в синий и подчеркнуть. Можно ли это сделать?Сделать строку похожей на url в TableModel

ответ

1

ВС был очень хороший учебник (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#modelchange) на cerating JTable. просто пройдите через него, прежде чем начать. надеюсь, что этот урок поможет вам. Но ниже мое предложение.

("<html><b><u>link</u></html>"); 

<html><b><a href="link">bold</a></b></html> 

подобный вид вещи

Однако, я бы не рекомендовал изменять данные в модели только для осуществления отображения. Вместо этого я бы создал пользовательский рендеринг ячеек, который выполнил этот эффект и установил его на стол. Вы можете либо обернуть свой текст в HTML, либо вручную задать цвет шрифта и свойства стиля на рендерере, чтобы имитировать html.

Теперь, даже если вы включили URL-адрес в html, вы по-прежнему не можете его нажимать. В таблице нет компонента. Вы не хотите переходить в режим редактирования при нажатии на URL-адрес. Вы просто хотите открыть эту ссылку. Для этого вы должны добавить слушателя мыши к самой таблице. Когда вы получаете событие click, вы затем программно определяете, в какой ячейке оно было, вернитесь к своей модели и получите URL-адрес, и, наконец, используйте другие вызовы Java API, чтобы открыть этот URL-адрес.

1

Я уверен, что вы можете просто создать строку, содержащую

<html>...</html> 

и он будет работать. Просто скопируйте свою ссылку внутри тегов html, как и в html. Вам просто нужно добавить дополнительный код, если вы хотите, чтобы он был синим. Я думаю:

<font color='blue'> 

бы это

2

Вам необходимо написать собственный TableCellRenderer для вашей jtable. См. Это link. Это может быть полезно для вас.