• ベストアンサー

JTableでスクロールバーが表示されない

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>

質問者が選んだベストアンサー

  • ベストアンサー
  • HarukaV49
  • ベストアンサー率53% (48/89)
回答No.2

>表示範囲の幅にギチギチ表示される >だけで、スクロールバーが出てきません。 JTable#setAutoResizeMode(JTable.AUTO_RESIZE_OFF) を指定します。

mamappi82
質問者

お礼

回答ありがとうございました。 お礼が遅くなって申し訳ございませんでした。 (別の作業をしながら、時々調べていました。) #のところの意味が分からなくて、いろいろ調べていたので+αで勉強になりました。 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.html) 本当にありがとうございました。

その他の回答 (1)

  • Apr2nd
  • ベストアンサー率69% (36/52)
回答No.1

テーブルに表示させるデータの数がスクロールバーを必要とするデータ数に達してない ので表示されていないのではないでしょうか? cellで定義しているデータの部分を表内に収まりきらないぐらい増やしてあげれば スクロールバーが表示されると思います。

mamappi82
質問者

補足

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

関連するQ&A

専門家に質問してみよう