Josh Josh - 11 months ago 39
Java Question

Add a title to a JTable

I have a JTable which is created using a TableModel

JTable t = new JTable(tableModel)
I want to add a title to it. I was hoping for something like
but i cant find anything on that lines. I dont mind if the title is on top or below the table.
I was using JLabels but it just looks messy.

Can anyone help?
Cheers in advance

Answer Source

Another option you could consider is enclosing the JTable in a JPanel and setting a TitledBorder to that JPanel.

Like this:

import javax.swing.*;
import javax.swing.border.TitledBorder;

public class TableTitle
    public TableTitle ()
        JFrame frame = new JFrame ();
        frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);

        JPanel panel = new JPanel ();
        panel.setBorder (BorderFactory.createTitledBorder (BorderFactory.createEtchedBorder (),
                                                            "Table Title",

        JTable table = new JTable (3, 3);

        panel.add (table);

        frame.add (panel);

        frame.setLocationRelativeTo (null);
        frame.pack ();
        frame.setVisible (true);

    public static void main (String[] args)
        SwingUtilities.invokeLater (new Runnable ()
            @Override public void run ()
                TableTitle t = new TableTitle ();

It looks like this: