プロが教えるわが家の防犯対策術!

JTableで表を作成しました。
表示はされているのですが、
スクロールバーが表示されません。
コードは下記の通りです。
どうか宜しくお願いいたします。
■Java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class ren32 extends JApplet{
Container c;
public void init(){
c = this.getContentPane();
c.setLayout(null);
String[] cname = {
"name","comment","test1","test2",
"(0)","(1)","(2)","(3)","(4)",
};
Object[][] cell = {
{"","","","","","","","",""},
};
JTable table = new JTable(cell, cname);
JScrollPane sp = new JScrollPane(table);
sp.setBounds(10,10,750,380);
c.add(sp);
}
}

■html
<html>
<head>
<title>Ren1</title>
<body bgcolor=white text=black>
<applet code="ren32.class" width="800" height="500">
</applet>
</head>
</html>

A 回答 (2件)

>表示範囲の幅にギチギチ表示される


>だけで、スクロールバーが出てきません。

JTable#setAutoResizeMode(JTable.AUTO_RESIZE_OFF)
を指定します。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
お礼が遅くなって申し訳ございませんでした。
(別の作業をしながら、時々調べていました。)

#のところの意味が分からなくて、いろいろ調べていたので+αで勉強になりました。

JTable table = new JTable(cell, cname);
を下記の通り変更したらスクロールバーが表示されました。
JScrollPane sp = new ScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
sp.getViewport().add(table);
(これについては、下記のサイトで知りました。
 http://home.f02.itscom.net/soukyoku/jtips/gui.html

また、これだけでは、セル幅を変更しても1行の中に列がはみ出さないように自動調整されてしまい、
具合が悪く、更に調べました。

そして、ようやくHarukaV49様の回答の内容にたどりつきました!
列幅の調整方法を変更させるには、
JTableで用意されている"setAutoResizeMode"を使うのだ
ということが分かりました。
そして、同時に、上記の修正は必要なく、
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
だけを
c.add(sp);
の後に追加すればよいと言うことも・・・。
(これについては、下記のサイトで知りました。
 http://www.javadrive.jp/tutorial/jtable/index3.h …

本当にありがとうございました。

お礼日時:2008/08/07 14:27

テーブルに表示させるデータの数がスクロールバーを必要とするデータ数に達してない


ので表示されていないのではないでしょうか?

cellで定義しているデータの部分を表内に収まりきらないぐらい増やしてあげれば
スクロールバーが表示されると思います。

この回答への補足

回答ありがとうございます。
例えば、cellで定義しているデータの数を30個増やしても、
列が細かく(細~く)なって、表示範囲の幅にギチギチ表示される
だけで、スクロールバーが出てきません。

補足日時:2008/07/18 14:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!