2011-01-04 5 views
3

Я делаю функцию сообщения, и я хочу смело использовать дорогу, где «read = No», и после того, как я нажму на нее, она станет прочитанной = да, и unbold ... я уже сделал часть базы данных, но я серьезно не знаю, как сделать таблицу рендеринга .... cauze я все еще очень свежий в java ... так, любой может помочь? ценит много!Как выделить целую строку данных в JTable?

+0

@Charles есть причина для внесения изменений и удаления новых тегов, потому что я отредактирую оставшиеся потоки Swing с этими двумя тегами ... – mKorbel

+0

@mKorbel, с точки зрения аутсайдера, ни этот вопрос, ни один из других два вопроса, которые вы отредактировали новый тег, в даже * упоминаете * что-нибудь о «windowlistener», а третья только упоминает его в ответе: * ваш * ответ. Помните, что теги предназначены для категоризации вопросов, чтобы их могли найти люди с вопросами. Если вы действительно считаете, что новый тег поможет классифицировать эти три * довольно старых * вопроса, пожалуйста, не стесняйтесь возвращать мои изменения, хотя я бы настоятельно предложил найти еще много вопросов, чтобы добавить тег в ближайшее время. Я не единственный агрессивный новый лейбл-deleter! – Charles

+0

@Charles благодарит за ваш ответ, да, что именно о ..., windowlistener является обычным Java Swings Listener и упоминается OP и автоответчиком тоже, в этом потоке ссылка (by @camickr) для подготовки функциональности Renderer, просто я очищаю Swing rellated вопрос, и добавил там несколько новых тегов, выглядит как часть из них, я подтвердил многократными изменениями, и для этих двух я, вероятно, забыл :-), неважно, будет создано снова, вот и мне нравится :-) – mKorbel

ответ

9

вы можете сделать это с помощью HTML

String str = "<html><b>this is bold</b> this is normal </html>"; 
+0

Благодаря ! Но это на самом деле программа Java SE ... – Lucifer

+1

Да Это только для SE, swing примет HTML –

+0

okay ... if (msg.getRead() == "Нет") {msg.setRead ("" + msg.getRead() + ""); data [i] [4] = msg.getRead(); } Я делаю это на myTableModel, и он не показывает ... – Lucifer

5

я хочу смелая дорогу где «прочитать = No» и после того, как я нажимаю, он будет прочитать = да, и нежирным шрифтом ...

Использование подхода Table Row Rendering для визуализации строки на основе данных в строке. Изменение кода из приведенных примеров следует использовать следующее, когда требуется:

c.setFont( c.getFont().deriveFont(Font.BOLD)); 
2

Извините за возрождение старого поста, но я искал что-то очень похожее на это и придумал с моим собственным решением (хотя это своего рода от ответов Джигара). В моем случае у меня есть таблица сценариев/программ, которая отображает как текущую версию (в 4-м столбце), так и последнюю версию скрипта/программы (в третьем столбце). Я хотел, чтобы было легче определить те, которые не были современными. Все решения, которые я видел в другом месте, как представляется, дали метод, который включал изменение DefaultCellRenderer, но не упомянул, как активировать его на уже заполненной таблице (или действительно вообще, что я мог видеть). В результате я начал выяснять свой собственный метод с помощью метода «Keep It Simple Stupid» (KISS для краткости) и придумал приведенный ниже код ... надеюсь, кто-то найдет его полезным.

 for(int r=0;r<table.getRowCount();r++) { 
      if(!table.getValueAt(r, 2).equals(table.getValueAt(r, 3))) { 
       for(int c=0;c<table.getColumnCount();c++) { 
        table.setValueAt("<html><b>" + table.getValueAt(r, c) + "</b></html>", r, c); 
       } 
      } 
     } 

Я уверен, что есть и другие, более эффективные методы там ... но это было то, что я смог придумать с моим (по-прежнему ограничено) знание Java, что на самом деле работал в моей ситуации. Опять же, жаль возрождать старый пост, но я надеюсь, что это поможет некоторым другим в подобных ситуациях по-своему.

Смежные вопросы