2016-12-12 2 views
2

У меня был JTable в java, и я хочу знать, как я могу изменить шрифт, полужирный, в зависимости от целочисленного значения. У меня есть эта таблица, и я хочу изменить шрифт строки в зависимости от количества людей в тренере. Я все еще новичок в качелях, и я понятия не имею, как это сделать. мне нужно решение, которое будет делать что-то вроде:изменение шрифта Jtable строки на полужирный

if (num_people >17 && num_people<26){ 
    //change row font to bold 
} 

это пример того, что я бы нужно, если следующее изображение, я имею ниже того, что у меня уже есть:

What i have so far in my program

Ссылка на мой текущий код: https://gist.github.com/anonymous/015022f7ad55ff9664e2edaea6a58d5a

+1

Тот же ответ, который дается каждый день, дважды или более на некоторых. Используйте средство визуализации. * «хочу изменить шрифт строки в зависимости от количества людей в тренере. Я все еще новичок в качелях, и я понятия не имею, как это сделать». Вот почему вы должны делать [Как использовать Таблицы] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html), которого вы, очевидно, не сделали. –

+0

@AndrewThompson мотыга для использования столов в учебнике не показывает, как сделать текст полужирным. Я попытался найти его, но я не мог. mbye вы могли бы указать мне на это –

+0

О, за громкий крик .. Он не показывает каждый вариант делать все возможное, потому что вы должны использовать разные части API для разных вещей! Вы уверены, что вы вырезали для программирования? –

ответ

4
public class CellRenderer extends DefaultTableCellRenderer { 

private static final long serialVersionUID = 1L; 

@Override 
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, 
     int column) { 
    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 

    if (value>17 value<26) { 
     this.setValue(table.getValueAt(row, column)); 
     this.setFont(this.getFont().deriveFont(Font.BOLD)); 
    } 
    return this; 
} 
} 

это как клетка визуализатор будет выглядеть жирным шрифтом. я не тестировал его. вы вызываете table.getColumnModel().getColumn(x).setCellRenderer(new CellRenderer()); после инициализации JTable и вызываете его для каждого столбца, который вы хотите применить к этому шрифту.

+0

где я могу вставить это? –

+1

@SakshamGoyal новый класс и использовать его с 'table.getColumnModel(). GetColumn (x) .setCellRenderer (new CellRenderer()) ;, где x - столбец, который вы хотите изменить. если его все столбцы, перебирать их – XtremeBaumer

+0

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

3

Отъезд Table Row Rendering. В нем показано, как применить рендеринг к данной строке в таблице, переопределив метод prepareRenderer(....). Это особенно полезно, если вы используете разные рендереры для каждого столбца.

Вы действительно должны использовать разные средства визуализации для определенных столбцов в таблице. Некоторая ячейка должна отображать строки, а некоторые должны отображать числовые значения, которые обычно отображают значения с выравниванием по правому краю.

Вы также можете проверить Table Format Renderers, что упрощает создание пользовательских визуализаций со специальным форматированием данных.

+0

вы можете посмотреть мой код и показать мне? Я новичок в качелях, поэтому я не знаю, как это сделать. –

+1

@SakshamGoyal, я показал вам рабочий код. Перейдите по ссылке и загрузите примеры рабочего кода. Потратьте некоторое время, чтобы понять, как они работают, а затем настроить логику для вашего точного требования. «Я новичок в свинге» - и вы учитесь, пытаясь. Вы редко найдете примеры кода, которые делают именно то, что вы хотите. Поэтому вам нужно понять концепцию, а затем настроить код, который люди дают вам на примерах. – camickr

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