2012-03-02 9 views
2

TableModelを使用して作成されたJTableを持っていますJTable t = new JTable(tableModel)タイトルを追加したいと思います。私はt.setTitle(graphTitle);のようなものを望んでいたが、私はその行に何も見つからない。タイトルがテーブルの上か下にあるかは気にしない。 JLabelsを使用していましたが、ちょうど乱雑に見えます。JTableにタイトルを追加する

誰でも手助けできますか? あらかじめ乾杯しています

+0

のJTableを含むJScrollPaneの上記のJLabelを配置することは、私にとって最高の、最も簡単な解決策のように見えます。なぜそれは乱雑に見えるのですか? –

答えて

11

JTableJPanelに囲み、TitledBorderをそのJPanelに設定することも考えられます。

screenshot1

+2

)。Java命名規則を学んでください。 – kleopatra

+0

@kleopatra私はそれに焦点を当てていませんでした。プログラムの作業をしたい:)。 –

+2

基本は正しいものでなければなりません;-)つまり、例: – kleopatra

0

私はあなたに多くのオプションがないと思います。 JTableにはタイトルバーを追加する機能がありません。 JLabelまたは他のコンポーネントを使用することが唯一の選択肢です。 JTableをJTabbedPaneに配置してみてください。

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

それがすでに存在する場合は、あなたがこのような何か行うことができます。RoseIndia.net

希望の

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

礼儀をそれは助ける。

+0

Java命名規則を学んでください。 – kleopatra

+1

OPが要求したものではありません(_table_タイトル、_column_タイトルなし – kleopatra

0

あなたはまた、あなたのタイトル、それにJTableの内接するJScrollPaneを追加することができます。

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

それは次のようになります。このよう

コード:

JScrollPane scrollPane = new JScrollPane(table); 
scrollPane.setBorder(BorderFactory.createTitledBorder ("Table Title")); 
関連する問題