Добавить заголовок в JTable - PullRequest
2 голосов
/ 02 марта 2012

У меня есть JTable, созданный с использованием TableModel JTable t = new JTable(tableModel) Я хочу добавить к нему заголовок.Я надеялся на что-то вроде t.setTitle(graphTitle);, но я ничего не могу найти по этим строкам.Я не против, если заголовок сверху или снизу таблицы.Я использовал JLabels, но это выглядит грязно.

Кто-нибудь может помочь?Приветствия заранее

Ответы [ 4 ]

11 голосов
/ 02 марта 2012

Другой вариант, который вы могли бы рассмотреть, это заключить JTable в JPanel и установить TitledBorder в JPanel.

Как это:

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",
                                                            TitledBorder.CENTER,
                                                            TitledBorder.TOP));


        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 ();
            }
        });
    }
}

Это выглядит так:

screenshot1

2 голосов
/ 02 марта 2012

Вы должны добавить его при создании экземпляра DefaultTableModel:

String data[][] = {{"Vinod","MCA","Computer"},
{"Deepak","PGDCA","History"},
{"Ranjan","M.SC.","Biology"},
{"Radha","BCA","Computer"}};

String col[] = {"Name","Course","Subject"};

DefaultTableModel model = new DefaultTableModel(data,col);
table = new JTable(model);

Если он уже существует, вы можете сделать что-то вроде этого:

ChangeName(table,0,"Stu_name");
ChangeName(table,2,"Paper");

public void ChangeName(JTable table, int col_index, String col_name){
    table.getColumnModel().getColumn(col_index).setHeaderValue(col_name);
}

Предоставлено RoseIndia.net

Надеюсь, это поможет.

0 голосов
/ 30 августа 2016

Вы также можете добавить свой заголовок в JScrollPane, на котором написано jtable.

Код:

JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBorder(BorderFactory.createTitledBorder ("Table Title"));
0 голосов
/ 02 марта 2012

Я не думаю, что у вас есть много вариантов здесь.JTable не имеет функциональности для добавления заголовка.Поэтому использование JLabel или других компонентов - ваш единственный выбор.Попробуйте поместить JTable в JTabbedPane.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...