为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 (); } }); } }
它看起来像这样:
在实例化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"));