Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Bolding text in a JTable cell

Posted on 2001-06-29
9
Medium Priority
?
3,557 Views
Last Modified: 2008-02-01
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().getTableCellRendererComponent(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
0
Comment
Question by:bmarfell
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
9 Comments
 
LVL 1

Expert Comment

by:tonus
ID: 6237584
In the above code you haven't set the property Bold.
Use c.setFont(new Font("Courier", Font.ITALIC + Font.BOLD , 12));
0
 
LVL 92

Expert Comment

by:objects
ID: 6237663
You need to set the font on the renderer.
Or define your own renderer.

((JLabel)t.getHeaderRenderer()).setFont(new Font(("Courier", Font.BOLD, 12));

0
 
LVL 1

Accepted Solution

by:
kvkamesh earned 900 total points
ID: 6237776
HI
 you have forget to make it bold use this one and tell me
 d.setFont(new Font("Courier", Font.ITALIC+Font.BOLD, 12));
this is the exact answer for your question
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:bmarfell
ID: 6239745
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?
0
 
LVL 92

Expert Comment

by:objects
ID: 6239977
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 getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
   {
      COmponent c = super.getTableCellRendererComponent(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().setDefaultRenderer(
   new MyTableCellRenderer());



0
 
LVL 92

Expert Comment

by:objects
ID: 6243815
??? I thought you said you tried it and it didn't work?
And the solution was a copy of tonus's comment?
:-(
0
 
LVL 1

Expert Comment

by:kvkamesh
ID: 6244439
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
0
 
LVL 1

Expert Comment

by:kvkamesh
ID: 6244460
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
0
 
LVL 92

Expert Comment

by:objects
ID: 6247034
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.


0

Featured Post

What’s Wrong with Your Cloud Strategy ?

Even as many CIOs are embracing a cloud-first strategy, the reality is that moving to the cloud is a lengthy process and the end-state is likely to be a blend of multiple clouds—public and private. Learn why multicloud solutions matter in this webinar by Nimble Storage.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question