• ベストアンサー

ソーティングについて

 お忙しい中すみません。 JAVA初心者のものです。 今データベースのソーティングを行おうとしています。例えばディスプレイ上に表示されたデータ(テーブル)のうち、「名前」欄をクリックするとあいうえお順で表示が切り替わるようにしたいと思います。 「ソーティング、データベース」等で調べてもソースコードが書かれた説明が得られません。考え方だけでも教えていただけないでしょうか?(ノ_<。)

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

  • ベストアンサー
  • tom11
  • ベストアンサー率53% (134/251)
回答No.3

こんにちは、 >「利用している」ということは一部自分用に変更していますよね?どこを変えればいいのでしょうか?? >あと、贅沢ですがもう少し易しいサイトは無いでしょうか?よろしくお願いします。 TableSorter.java自身は、ほとんど、変更しなくていいです。 強いて、変更する場所は、文の最初にある。package文くらいですか。 TableSorter.javaは、部品として使えるので、 部品として、使い方を覚えれば良いだけです。 JLabelや、JTalbeなどを使うのと同じ感覚です。 参考URLのサンマイクロのページに書いてあるように、 >TableSorter sorter = new TableSorter(new MyTableModel()); //ADDED THIS >//JTable table = new JTable(new MyTableModel()); //OLD >JTable table = new JTable(sorter); //NEW >sorter.setTableHeader(table.getTableHeader()); //ADDED THIS のように、TableSorterを使うプログラムに、上記文を自分用に合わせて、 書き加えれば、JTableのカラムのタイトルをクリックすれば、 昇順、もしくは、降順にソートしてくれます。 TableSorter.javaは、内部クラスにしてもいいし。外部クラスにしてもいいし、 自分に、都合のいいように、加えたらいいと思います。 TableSorter.javaの中身を理解して、使おうとしたら、 大変かも!! 中身を理解しなくとも、使えるのは、javaの良い所かも知れませんね。 実際、Swingなども、内部を理解して、使っている人は、 かなり少ないかと思います。

javatea_1985
質問者

お礼

はじめの質問と趣旨がずれてきたので質問をし直します。ありがとうございました。。\ ( * ⌒ ▽ ⌒ * ) /

javatea_1985
質問者

補足

すいません。せっかく教えて頂いたのですが、 試行錯誤してもやっぱり無理みたいなので考え直しました。 それで、クリックされたカラムによってポストパラメーターを発行し、それによりSQL文を書き換える(assend/decendを使って。)というのはできるでしょうか?値はカラムの名前にリンクを張ればできるのですがスマートじゃない気がします・・・

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

こんにちは、 私自身、TableSorterのプログラムの解析をしていないので、 良く分かりませんが、 このTableSorterのプログラム自身は、 サンマイクロのjavaに関する、チュートリアルで、公開されているものです。 ネタ元は http://java.sun.com/docs/books/tutorial/uiswing/components/table.html にあります。 ここの、 Sorting and Otherwise Manipulating Data ここをクリックすると、TableSorterのところに、行きます。 ここの、TableSorter.javaとTableSorterDemo.javaを、参考にした方が、 解りやすいかもしれません。 >1.その後なぜ10進法から62進法にするのか。 ここは、TableSorterには、関係ないと思います。 多分、TableSorterで、ソートする、データの部分だと思います。 画像には、この部分は、多分、何も反映していないかと思います。 >2.どうやって先頭の文字を比較する(抽出してくる)のか。 >3.テーブルなのでパラメーターが複数個あるのですが、どうやってそれらをまとめて(行単位で)ソーティングするのか サンのjavaのプログラムを流用して、利用しているだけなので、 私自身も、プログラムの解析をしていないので、なんとも、いえません。

javatea_1985
質問者

補足

 ご説明していただき、ありがとうございました。 しかし、JAVAをはじめて1ヶ月もたたない自分には よく理解できませんでした・・・ けんもほろろです。 各ブロックが大体どういったことをやっているかすら・・ 「利用している」ということは一部自分用に変更していますよね?どこを変えればいいのでしょうか?? あと、贅沢ですがもう少し易しいサイトは無いでしょうか?よろしくお願いします。

すると、全ての回答が全文表示されます。
  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

こんにちは、 こんな感じので、よろしいのでしょうか。?? http://asistobe851.hp.infoseek.co.jp/public_tec/TableSorter.html

javatea_1985
質問者

お礼

すいません、62進数に直すのは0~9までとa~z,A~Zを合計すると62文字ということですね。 考えてから質問します(。_+)\

javatea_1985
質問者

補足

参照のURL、すごく分かりやすいです! サイトも適切ですし、ありがとうございます。(@^▽^@) はじめの方では0-9,a-z,A-Zにそれぞれ数字を割り振り、大小関係を作っているわけですね。 ただ、次の3点を詳しく教えていただけますか? 1.その後なぜ10進法から62進法にするのか。 2.どうやって先頭の文字を比較する(抽出してくる)のか。 3.テーブルなのでパラメーターが複数個あるのですが、どうやってそれらをまとめて(行単位で)ソーティングするのか がわかりません。 どれか一つでもいいので教えてください。m(__)m

すると、全ての回答が全文表示されます。

関連するQ&A