bmarfell
asked on
Bolding text in a JTable cell
Hi,
I was wondering if anybody could please tell me how I can BOLD text in a particular cell within a JTable? From what I've read, it is simply a matter of playing around with a CellRenderer, maybe something like:
void setColour (TableColumn t){
DefaultTableCellRenderer d = new DefaultTableCellRenderer() ;
d.setFont(new Font("Courier", Font.ITALIC, 12));
t.setCellRenderer(d);
//trying to "hard-code"
Component c = t.getHeaderRenderer().getT ableCellRe ndererComp onent(null , t.getHeaderValue(), false, false, 0, 0);
c.setFont(new Font("Courier", Font.ITALIC, 12));
}
However, I can't seem to get a visual response from the JTable i.e. by querying the column/cell in question, I can confirm that the Font attribute of the column/cell/renderer has been updated, but there still isn't a change in the table when I run the Frame containing it.
Any suggestions would be greatly appreciated.
Cheers,
Blair
I was wondering if anybody could please tell me how I can BOLD text in a particular cell within a JTable? From what I've read, it is simply a matter of playing around with a CellRenderer, maybe something like:
void setColour (TableColumn t){
DefaultTableCellRenderer d = new DefaultTableCellRenderer()
d.setFont(new Font("Courier", Font.ITALIC, 12));
t.setCellRenderer(d);
//trying to "hard-code"
Component c = t.getHeaderRenderer().getT
c.setFont(new Font("Courier", Font.ITALIC, 12));
}
However, I can't seem to get a visual response from the JTable i.e. by querying the column/cell in question, I can confirm that the Font attribute of the column/cell/renderer has been updated, but there still isn't a change in the table when I run the Frame containing it.
Any suggestions would be greatly appreciated.
Cheers,
Blair
You need to set the font on the renderer.
Or define your own renderer.
((JLabel)t.getHeaderRender er()).setF ont(new Font(("Courier", Font.BOLD, 12));
Or define your own renderer.
((JLabel)t.getHeaderRender
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Yeah, sorry, I initially had tried BOLD in place of ITALICS, but then I tried ITALICS to confirm that I wasn't getting anywhere.
I've tried all your suggestions but I'm still not seeing either BOLDED or ITALICISED text in my JTable. Is there some property of the JTable or the JScrollPane it sits on that could be over-riding the cell-renderer somehow?
I've tried all your suggestions but I'm still not seeing either BOLDED or ITALICISED text in my JTable. Is there some property of the JTable or the JScrollPane it sits on that could be over-riding the cell-renderer somehow?
kvkamesh,
Please read ee guidlines for proposing answers.
That's exactly what tonus said.
bmarfell,
Yes, I wasn't sure if setting the font on the renderer would work or not.
Sounds like you'll need to use the other option I specified and install your own renderer:
class MyTableCellRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererCompon ent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
COmponent c = super.getTableCellRenderer Component( table, value, isSelected, hasFocus, row, column);
c.setFont(new Font("Courier", Font.ITALIC+Font.BOLD, 12));
return c;
}
}
And then use as follows:
table.getTableHeader().set DefaultRen derer(
new MyTableCellRenderer());
Please read ee guidlines for proposing answers.
That's exactly what tonus said.
bmarfell,
Yes, I wasn't sure if setting the font on the renderer would work or not.
Sounds like you'll need to use the other option I specified and install your own renderer:
class MyTableCellRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererCompon
{
COmponent c = super.getTableCellRenderer
c.setFont(new Font("Courier", Font.ITALIC+Font.BOLD, 12));
return c;
}
}
And then use as follows:
table.getTableHeader().set
new MyTableCellRenderer());
??? I thought you said you tried it and it didn't work?
And the solution was a copy of tonus's comment?
:-(
And the solution was a copy of tonus's comment?
:-(
Mr Objects
sorry boss i have done in my example i have not copied any one's code, please get it right ok.
I know its answer so i couldn't refere any comments. Please don't comment like this please.
Mr tonus has given,but it is a comment, i have given as a exact answer so Mr bmarfell accepted ok
Thanks
sorry boss i have done in my example i have not copied any one's code, please get it right ok.
I know its answer so i couldn't refere any comments. Please don't comment like this please.
Mr tonus has given,but it is a comment, i have given as a exact answer so Mr bmarfell accepted ok
Thanks
HI
bmarfell
Thanks for accepting my answer i am working some related application. Retrieving the data from database and displaying in the table. so there i used the same command, when saw your q? i immediately typed the answer.
please ask any q i will give you exact answer not comment?
Thank you
kamesh
bmarfell
Thanks for accepting my answer i am working some related application. Retrieving the data from database and displaying in the table. so there i used the same command, when saw your q? i immediately typed the answer.
please ask any q i will give you exact answer not comment?
Thank you
kamesh
tonus> c.setFont(new Font("Courier", Font.ITALIC + Font.BOLD , 12));
kvkamesh> d.setFont(new Font("Courier", Font.ITALIC+Font.BOLD, 12));
You tell me the difference.
ee guidleines> An answer is a specific solution to a question and should be submitted if it will solve the questioner's problem and doesn't duplicate a previous comment.
kvkamesh> d.setFont(new Font("Courier", Font.ITALIC+Font.BOLD, 12));
You tell me the difference.
ee guidleines> An answer is a specific solution to a question and should be submitted if it will solve the questioner's problem and doesn't duplicate a previous comment.
Use c.setFont(new Font("Courier", Font.ITALIC + Font.BOLD , 12));