为JTable添加标题

我有一个使用TableModel创建的JTable t = new JTable(tableModel)我想为它添加一个标题。 我希望有类似t.setTitle(graphTitle);东西t.setTitle(graphTitle); 但我找不到那条线上的任何东西。 如果标题位于表格的顶部或下方,我不介意。 我使用的是JLabel,但它看起来很乱。

有人可以帮忙吗? 提前干杯

您可以考虑的另一个选项是将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

在实例化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提供

希望有所帮助。

我认为你没有太多选择。 JTable没有添加标题栏的function。 因此,使用JLabel或其他组件是您唯一的选择。 尝试将JTable放在JTabbedPane中。

您还可以在JScrollPane中添加标题,其中包含jtable。

码:

 JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBorder(BorderFactory.createTitledBorder ("Table Title"));