No.3ベストアンサー
- 回答日時:
> テーブルをスクロールパネル⇒パネル⇒フレームと乗せると表示さ
> れるのですが、テーブル⇒パネル⇒フレームとすると表示されない
> ようなのです。
あぁ!。そのことなら、JTableのドキュメンテーションの最初のほうに、相当昔から書いてありますよ。設計者は、テーブル本体を切り離せたほうが便利、と考えたのでしょう。以下はドキュメンテーションからの引用です(日本語のは例によって文章がヘンなので、英語を引用します):
<quote>
Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately.
</quote>
以下のプログラムをコンパイルして動かしてみてください:
(全角スペース->半角スペースに)
----------------------------------------------
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import static java.awt.FlowLayout.*;
public class TableRheaders{
public static void main(String[] args){
String[][] rowData = {
{"1-1", "1-2"},
{"2-1", "2-2"}
};
String[] header = {"1列目", "2列目"};
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setLayout(new FlowLayout(CENTER, 0, 0));
JTable tbl = new JTable(rowData, header);
JTableHeader jth = tbl.getTableHeader();
pane.setPreferredSize(new Dimension(150, 100));
pane.add(jth);
pane.add(tbl);
frame.setSize(200, 150);
frame.getContentPane().add(pane);
frame.setVisible(true);
}
}
-----------------------------------
ご回答ありがとうございます。
ヘッダをテーブルから取り出し、パネルに追加することで表示を行えるようになるのですね。
理解できました。ありがとうございました。
No.2
- 回答日時:
列ヘッダ、行ヘッダはJTableの内容物ではなく、JScrollPaneの内容物です。
従って、JScrollPane使わずして行ヘッダ、列ヘッダを表示させることはできません。
スクロールバーを表示させたくないだけなら、JScrollPaneを生成する際にコンストラクタで表示/非表示を指定できます。
JScrollPane scrollPane = new JScrollPane(aJTable, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER )
詳しくはJavaDoc参照。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
ご回答ありがとうございます。
>列ヘッダ、行ヘッダはJTableの内容物ではなく、JScrollPaneの内容物です。
>従って、JScrollPane使わずして行ヘッダ、列ヘッダを表示させることはできません。
別物として扱えるものだと思っていました。
とりあえずスクロールバーを消す方向でやってみたいと思います。
ありがとうございました。
No.1
- 回答日時:
行ヘッダ(row header)ですね?
別のテーブル(ワンカラムだけのテーブル)を使う方法がありますよ。
もっと簡単なやり方として、カラムゼロだけ特別なレンダラで色違いにするやり方もあります。
ご回答ありがとうございます。
>行ヘッダ(row header)ですね?
いえ、行ヘッダ(一番左の列に見出しを表示)ではなく、
1行目を見出しとするようなイメージでです。
テーブルをスクロールパネル⇒パネル⇒フレームと乗せると表示されるのですが、
テーブル⇒パネル⇒フレームとすると表示されないようなのです。
わかりにくいかもしれないので試してみたソースを一部載せますね。
------------------------
○列ヘッダが表示される
(String headerが表示される)
String rowData = {
{"1-1", "1-2"},
{"2-1", "2-2"}
};
String header = {"1列目", "2列目"};
JFrame frame = new JFrame();
JPanel pane = new JPanel();
JTable tbl = new JTable(rowData, header);
JScrollPane scrlPane = new ScrollPane(tbl);
scrlPane.setPreferredSize(new Dimension(150, 100));
pane.setPreferredSize(new Dimension(150, 100));
pane.add(scrlPane);
frame.size(200, 150);
frame.getContentPane().add(pane);
frame.setVisible(true);
------------------------
○表示されない
(String headerが表示されない)
String rowData = {
{"1-1", "1-2"},
{"2-1", "2-2"}
};
String header = {"1列目", "2列目"};
JFrame frame = new JFrame();
JPanel pane = new JPanel();
JTable tbl = new JTable(rowData, header);
pane.setPreferredSize(new Dimension(150, 100));
pane.add(tbl);
frame.size(200, 150);
frame.getContentPane().add(pane);
frame.setVisible(true);
-------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) Excel での関数についての質問です。 例えばA列に商品名を、B列に個数をそれぞれ入力しています。 7 2023/05/13 10:51
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで文字数制限するには?
-
java junit list同士の比較方法
-
setPrefferedSizeとsetSize
-
java swing での質問です。
-
JTable の 列幅を個別に設定す...
-
JTableの列ヘッダ
-
TextAreaでの文字の色
-
JPanelの切り替えと再描画
-
【Swing】JPanel クラス外から...
-
Buttonを押すと画像が表示され...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
VBAで配列の計算
-
[JAVA]try 内の変数を外で!?
-
Javaで改行などが出来ないのです。
-
ORA-01858: 数値を指定する箇所...
-
ループ処理の際、最後だけ","を...
-
ダブルクォーテーションのrepla...
-
java
-
Java、2の0乗~10乗の表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
EXECLの行を削除
-
JPanelの切り替えと再描画
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
コンパイルエラー <identifier...
-
連番をオブジェクト名の最後に...
-
JDialogを閉じた時の処理
-
JPanelの重ね方/OverlayLayout他
-
JTableの列ヘッダ
-
ボタンクリック後パネルを再描...
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
KeyListenerの使い方について
-
JavaでのSwingを使った簡易電卓...
-
あるコンボボックスを選択する...
-
ArrayListの使い方について(初...
-
VB6.0でのTextboxの高さ変更
おすすめ情報