JTableで値が変化する方法とは?

このQ&Aのポイント
  • JTableで値が変化する方法とは何でしょうか?個数と値段を入力すると、自動的に合計値を計算して表示させる方法を教えてください。
  • 個数と値段を入力すると、合計値を自動的に計算するJTableの作り方を教えてください。
  • JTableで入力すると値が変化する方法について教えてください。個数と値段を入力して、合計値が自動的に計算されるようなテーブルの作り方を知りたいです。
回答を見る
  • ベストアンサー

JTableで入力すると値が変化する方法ってあります?

いつもお世話になっています。 質問なのですが、JTable関連で困っています。 今、個数と値段、そしてその2つをかけたもの(合計)の3列のテーブルを作っています。 個数と値段を打ち込ませるようにはしているのですが、合計はその2つの値を自動的に計算(掛け算)して出力させたいのです。 どのような方法がありますか? AbstructTableModelを継承してsetValueAt()とgetValueAt()をいじるのかなと思い何度も試しては見たのですがエラーばかりなのでどうも違うようなのです… たぶんいろんな方法があるとは思うのですが、こういったのがあるよってものでもいいのでアドバイスよろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • -soh-
  • ベストアンサー率27% (55/201)
回答No.2

かわらんでしょ、別にテーブルが三つあろうと一つであろうと 基本姿勢はTableCellRenderer.firePropertyChange() でイベントフックして合計値を算出して出力 あっ、そか、ごめん、一つ勘違いさせてたね AbstructTableModelを継承したクラス いらないよ、別に JTable.getModel() でとれるDefaultTableModelに普通にセットすればいいよ それともAbstructTableModelをどうしても使いたいの? そいや匿名クラスを使うことを推奨していた節もあったなぁ~。。。(記憶あいまい ま、それはどっちでもいいけど 整理すると 必要なのは 個数セルと値段セルに値が入力されたタイミングだよね? んで、それはfirePropertyChangeでとれるね? 出力は、自作でもDefaultTableModelでもいいけど とりあえずsetValueAt()をコールすればOKだよね? ユーザーが個数入力 -> システムがfirePropertyChangeをコール -> 個数と値段チェック -> 値段がないからスルー -> ユーザーが値段入力 -> システムがfirePropertyChangeをコール -> 個数と値段チェック -> 両方あるので合計値計算 -> setValueAtで合計値出力 基本フローはこんな風に描くとおもうんだけど もしかしてわしなんか勘違いしてる?

shotaro777
質問者

お礼

親切な回答ありがとうございます。 すごいぐらいやりたいことが当たってます(笑) なるほど、firePropertyChangeがカギのようですね。 頑張ってみます。 ありがとうございました。

その他の回答 (1)

  • -soh-
  • ベストアンサー率27% (55/201)
回答No.1

こんちゃ、sohです あぁ、それは継承するもんが足りてないんですよ TableCellRenderer.firePropertyChange() のオーバーライドでイベントをフックして 合計テーブルのTableModel.setValueAt()で合計値を設定 すれば多分いけると思いますよ

shotaro777
質問者

補足

回答ありがとうございます。 眠いときに質問したので上の文で少し誤解する個所がありました。 テーブルは1つに3列あるという意味です。 なんか上の文だと3つのテーブルが存在するようにもとれそうだったので(^_^;) あと僕の場合、AbstructTableModelを継承したインナークラスを使っているのですが、setValueAt()での合計値の設定はそこでやるものなのですか? 知識がないのでいろいろ聞いてしまってすいません。 なんかプラスアルファでアドバイスがもらえれば光栄です。

関連するQ&A

  • JTableについて 急

    皆さまのお知恵をお貸頂けると助かります。  JTableクラスを使ってテーブルの列の幅の値を決めたいのと、 数字をセルに入力したいのですが9までは09のように0をつけて 表示したいのですが、2日間止まってしまって困っています。 いろいろとググったりしたのですが 汗

  • JTableで表計算について質問です

    JTableで表計算について質問です 全くもって素人なので分かり易く教えて頂けると幸いです 値の列にたとえば9を入力すると、平方根の列には3が自動に表示されるものを作っているのですが… 分からないのは計算結果の表示です 上手くCellRendererやsetValueAtなどを使いこなせません 他の方が同じ質問をされていますが、その回答をやろうとしても分かりませんでした どうかアホにも分かるように教えてください

    • ベストアンサー
    • Java
  • JTableの列ヘッダ

    JTableの列ヘッダ(列見出し)を表示する方法で、 JScrollPaneを利用せずに表示する方法はありますでしょうか? テーブルに見出しをつけたいのですが、スクロールバーをつけたくないのです。 お手数ですがご教授お願いします。

    • ベストアンサー
    • Java
  • JavaScriptでSQLiteの値を使いたい

    プログラミング初心者です。 JavaScriptで、ユーザーが入力した値に応じて金額を計算するプログラム(金額=アイテムの値段×個数、ユーザーはフォームにて個数を入力、アイテムの値段はSQLiteに存在)を書いているのですが、計算過程でSQLiteに保存してあるアイテムの値段(itemsテーブルの各アイテムのchargeカラムの値)を使用する必要があります。 これを実現するためにはどのような方法があるでしょうか。また、どの方法がベストでしょうか。 回答よろしくお願いします。

  • フィールドから値を読み出す

    凄い初歩的な質問だと思いますが、 テーブルから値を出力する時に 「100」などといった数値なら読み込み可能なんですが、 「aaa100」といった文字列の場合ですと、 Warning: pg_query() query failed: ERROR: column "aaa100" does not exist のようなエラーが出てしまいます。 何か特別な出力方法が必要なのでしょうか?

  • エクセル関数の質問

    よろしくおねがいします。 以下のようなA列B列に数字が何行もあるのですが、 A列の数字(時間なのですが)を二つを別シートに記入すると A列の二つ分の期間を参照してB列の数字の合計や個数を計算したいのですが、 VLOOKでは期間分の値を計算できないので 何かいい方法はないでしょうか? A        B 1000      1 2000     -5 3000      8 4000      1 5000      3 6000      5 7000     -3 8000      2 9000      3 別シートにA列の数字を下記の例のよう二つに入力すると A列の期間を参照してB列の値を計算して B列に全合計 C列に+の合計 D列に-の合計 E列に+の個数 F列に-の個数 を表示させる。 <例1> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 1000 5000  8        13        -5         4        1 <例2> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 6000 9000  7        10        -3         3        1 のような感じで計算したいのですが わかりづらくてすいませんが、分かる方がいたらご教示お願います。

  • EXCEL A列の値を受けてB列に出力するロジック

    A列の値を受けて、B列に出力するVBAを組みたいと考えています。 ロジックが思いつきませんので、お助け下さい。 A列に一の位が必ず1の数字が入っています。 それをB列に1~10まで展開します。 それが終われば、A列の次の値をB列に入力、 同じように、B列に1~10まで展開します。 それをA列の最後の値まで繰り返します。 最終的にはA列に入力されている個数の10倍の個数がB列に出力されることになります、 以上の処理です。 A   B    C   D   E   F   G 1   31   31 2   61   32 3   81   33 4   11   34 5   ・   35 6   ・   36 7   ・   37 8   ・   38 9   ・   39 10   ・   40 11   ・   61 12   ・   62 13   ・   63 A列の値の個数は多いので、できるだけ早く動作するような処理方法がわかればと思います。 よろしくお願いします。

  • ピボットテーブル 値の合計を出したい

    組織   A社   B社 第一担当 200 第二担当 200 第一担当 200 第二担当 400 400 と言う元データを元にピボットテーブルを作成しました。 行ラベル→組織 値→A社、B社 をドラッグしました。 この時、 データの個数 / A社 データの個数 / B社 の合計を一番右の列に作りたいのですが ピボットテーブルで作成するにはどうすればいいでしょう? 今は、H列にSUM関数を入れています。

  • JTableからのデータの取得

    列数の多いテーブル (JTableの派生クラス) から ユーザー定義クラス (各プロパティにはsetterとgetterは実装済み) に 効率的にデータを取得する方法を教えて下さい。 データの取り込みはTableModelクラスを使って行う予定ですが 列数が多いため、列番号でIF分岐してsetterを呼ぶのは あまりに非効率な気がします。 どのように処理するのが良いのでしょうか? お知恵をおかしください。宜しくお願い致します。

    • ベストアンサー
    • Java
  • エクセルで、例えば”弁当”@”個”と入力した後、個数を合計する方法

    質問をご覧になっていただきありがとうございます。 例えば、セルの書式設定のユーザー定義で、 ”弁当”@”個” と入力すれば、任意の数字を入れるだけで、 1をセルに入れたとすれは、「弁当1個」と表示されますよね。 この弁当を売り上げた個数を一発で計算したいのですが、 通常の数字だけなら、合計したい範囲の弁当の個数の列を選択し、 Σを押せば範囲指定されて、エンターを押せば合計の個数がでるのですが、 ユーザー定義で作った文字は範囲指定してΣを押しても合計されません。 ユーザー定義で作った数でも列の合計を出す方法を教えていただけると助かります。 明日仕事で使いたいので焦ってます。どうかよろしくお願いします。

専門家に質問してみよう