Как установить заголовок в JTable

Я новичок в java и хотел установить заголовок таблицы в jtable. Я взял массив, но не могу установить заголовок, пожалуйста, помогите мне. Я попытался установить, взяв экземпляр JTable, но не помог. также пробовал table.setmodel. Спасибо

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;

public class XmlGui extends JFrame {
    public XmlGui() {
    }

    public static final String[] colNames = { " Name ", " Type ", " Value " };

    public static void main(String[] args) throws SAXException, IOException,
            ParserConfigurationException {

        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        XmlBack xmlBack = new XmlBack();
        saxParser.parse(new File(
                "File path"), xmlBack);
        new XmlGui().drawFrame(xmlBack.varGroupVariables);
    }

    public void drawFrame(List<VarGroupVariable> varGroupVariables) {
        setTitle("The Xml Parser");
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        setSize(800, 500);

        JTabbedPane tabbedPane = new JTabbedPane();
        JPanel jplInnerPanel1 = createInnerPanel();
        jplInnerPanel1.setLayout(new BorderLayout());
        //Vector<String> columnNames = new Vector<String>();

        JTable table = new JTable();
        table.setModel(new VarGroupVariableModel(varGroupVariables));

        JScrollPane tableContainer = new JScrollPane(table);
        jplInnerPanel1.add(tableContainer, BorderLayout.CENTER);
        tabbedPane.addTab(" TABBEDPANE DEMO ", jplInnerPanel1);
getContentPane().add(tabbedPane);
        setVisible(true);
    }

    protected JPanel createInnerPanel() {
        JPanel jplPanel = new JPanel();
        JLabel jlbDisplay = new JLabel();
        jlbDisplay.setHorizontalAlignment(JLabel.CENTER);
        jplPanel.setLayout(new GridLayout(1, 1));
        jplPanel.add(jlbDisplay);
        return jplPanel;
    }

}

person nick    schedule 27.05.2013    source источник


Ответы (1)


public static final String[] colNames = { " Name ", " Type ", " Value " };

Вы не можете просто определить переменную, содержащую имена столбцов.

Ваш VarGroupVariableModel должен правильно реализовать метод getColumnNames(), чтобы имена заголовков таблицы отображались. Таким образом, приведенный выше код каким-то образом должен быть частью вашей модели.

Рабочий пример см. в руководстве по Swing Как использовать таблицы. и больше информации.

person camickr    schedule 27.05.2013
comment
У меня есть prb со значением настройки в jtable. У меня есть метод в varGroupVariableModel. public String getColumnName(int col) { return colNames[col].toString(); } но как мне установить его в jtable - person nick; 27.05.2013
comment
Вы не делаете ничего особенного. Таблица вызовет метод getColumnName() модели TableModel, а затем создаст TableColumns для JTableHeader. - person camickr; 27.05.2013