我有一个使用TableModel创建的JTable JTable t = new JTable(tableModel)
我想为它添加一个标题。我希望有类似t.setTitle(graphTitle);
之类的东西,但我无法找到这方面的任何内容。如果标题位于表格的顶部或下方,我不介意。
我使用的是JLabel,但它看起来很乱。
有人可以帮忙吗? 提前干杯
答案 0 :(得分:11)
您可以考虑的另一个选项是将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 ();
}
});
}
}
看起来像这样:
答案 1 :(得分:2)
在实例化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);
}
希望有所帮助。
答案 2 :(得分:0)
我认为你没有太多选择。 JTable没有添加标题栏的功能。 因此,使用JLabel或其他组件是您唯一的选择。 尝试将JTable放在JTabbedPane中。
答案 3 :(得分:0)
您还可以将标题添加到JScrollPane中,其中包含jtable。
<强>代码:强>
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBorder(BorderFactory.createTitledBorder ("Table Title"));