• ベストアンサー

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

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

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

Jtableは初めて触るので、参考程度にしてください。 public class JtableTest extends JFrame { private String[] columnNames = { "番号", "値", "平方根" }; private String[][] data = { { "1", "", "" }, { "2", "", "" }, { "3", "", "" }, { "4", "", "" }, { "5", "", "" }, { "6", "", "" }, { "7", "", "" }, { "8", "", "" }, { "9", "", "" }, { "10", "", "" } }; JtableTest() { setBounds(10, 10, 500, 300); TableModel dataModel = new AbstractTableModel() { public int getColumnCount() { return columnNames.length; } public int getRowCount() { return data.length; } public Object getValueAt(int row, int col) { return data[row][col]; } public String getColumnName(int arg0) { return columnNames[arg0]; } public void setValueAt(Object value, int row, int col) { String input = (String) value; double sqrt = Math.sqrt(Integer.parseInt(input)); data[row][col] = input; data[row][col + 1] = Double.toString(sqrt); } public boolean isCellEditable(int arg0, int arg1) { return arg1 == 1; } }; JTable table = new JTable(dataModel); table.setRowSelectionAllowed(false); JScrollPane scrollpane = new JScrollPane(table); getContentPane().add(scrollpane, BorderLayout.CENTER); } public static void main(String[] args) { JtableTest test = new JtableTest(); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); test.setVisible(true); } } 入力チェックなどは何もしていませんので注意してください。

noname#183916
質問者

お礼

回答ありがとうございます。 AbstractTableModeを使うんですね~。 自分はずっと明後日の方向にやってたようです。 参考になります。ありがとうございました。

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

関連するQ&A

  • JTableについて 急

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

  • JTableの表からデータ保存等について

    JTableを使って表計算出来るアプリを作りたいなと思ってますが 分からない事だらけで・・・ まずはリファレンスなるものに慣れるのが先決かも判りませんが。 やりたい事は ・セルを使って四則計算がしたい。 ・入力したデータを保存したい。 ネットで検索したりここの過去ログやを見るとどうやら XMLを使うのが手軽みたいですがセルに入力されたデータは どういう風に保存するのでしょうか? XML関連のページを見たりしてJavaでXML文書を操作 出来ると言うのは一応理解してますが、 その処理をどういう風にJTableを使って作れば良いのか 判らないんです。 稚拙な質問かもわかりませんがよろしくお願いします。

  • VBA 別シートの計算表

    Excelについて。 シートAに、計算表があります。 セルa1に入力した値によって、いくつかのExcel関数を利用して、 セルb1に結果を出力しています。 いつも、手入力でセルa1に値を入力して結果を求めていますが。 今度、シートBに膨大な入力するための数値があるので、VBAで自動化できないかと考えています。 今回の質問は、VBAで記述する際に、シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力していこうと考えています。 シートAのa1に入力値を代入して、すぐに結果b1の値を結果出力セルに代入していいのでしょうか? 計算表(シートA)での計算を時間をおく必要があるのでしょうか?=一旦、他のセルを選択するなど。 よろしくお願いします。 ・計算表での計算時間は、1秒未満です。 ・計算表の計算過程もVBAで書けば済む話ですが、プログラミングには疎いので、計算表をそのまま利用したいと考えています。=入力の代入だけVBAで書いていきたいと思います。 ・その他、アドバイスなどいただければ幸いです。 よろしくお願いします。 Excel2010

  • Excelの表計算について

    Excelの表計算について 私が使っているのはExcel2003です。 仕事で(在宅ワーク)Excelを使っています。 相手側から入力用のフォーマットが送られてきて、それに入力していくのですが その中に計算式も埋め込まれています。 横の列の2マスぐらいを掛けたり割ったりしたやつがその隣のマスに表示されるのですが PDFファイルの資料を見ながら数値を入力していくのですが、PDFファイル1枚に30件ぐらいの資料が載っています。 それを一気に入力して、Excelを見て間違いがないか確認します。 その際に、一個飛ばして打ってしまった時とかに、セルを挿入して下方向にシフトを選んでいるのですが それをしているせいなのか、表計算がおかしくなっています。 数値を打ってその計算結果が表示された際に、その数値を打った横のセルではなく 一つ上の列のセルに計算結果が表示されます。 表計算式が狂っているせいではなく、私がセルの挿入等をやってるせいかと思うのですが これは再計算とかできないものでしょうか? 気付いたのが1000件以上入力した後だったので 今から全部打ちなおすとなると期日までに間に合わなくて。 回答お待ちしてます。

  • Excelで表計算結果のみ表示するには?

    Excelで表計算結果のみ表示するにはどうすればよいのでしょうか? 例えば、セルA2に「=A1+1」という表計算結果を表示させたいとします。もしもセルA1が「3」という値の時は、セルA2には「4」と表示されます。ここで、セルA2の表計算結果だけを残して、セルA1の表示を削除したいのですが、「=#REF!+1」みたいにエラーになってしまいます・・・このようなとき、表計算結果のみを表示させることはできないのでしょうか?表計算結果を見ながら自分で計算結果を入力していく方法しかないのでしょうか? データーが大量にあるため、提出レポートには計算結果だけを載せる必要があるのです。もし良い方法がありましたら教えてください。よろしくお願いします!

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

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

    • ベストアンサー
    • Java
  • JavaのjTableについて

    JavaのEclipse3.2でアプリケーションの勉強をしているのですが、 わからないことがあります。 i=1 model = new DefaultTableModel( i , 2 ); jTableのセルの表示が、1行2列になっています。 [0,0]=空白 [0,1]=空白 この時、[0,0]に1と入力して、 [0,0]= 1 [0,1]=空白 Enterを押すと2行目がないので、カーソルは[0,1]に移動します。 が、自分はこれを↓ キーボードのEnterを押すことで、 [0,0]= 1 [0,1]=空白 [1,0]= 空白 [1,1]=空白 2行2列の配列とjTableの表示も2行2列に変わる。 カーソルは[1,0]に移動。 また、[1,0]に2を入力。 [0,0]= 1 [0,1]=空白 [1,0]= 2 [1,1]=空白 Enterを押す。 [0,0]= 1 [0,1]=空白 [1,0]= 2 [1,1]=空白 [2,0]= 空白 [2,1]=空白 のように表示させたいのですが、どうすれば良いのでしょうか? ※説明下手ですいません。 それとも、 『キーボードのEnterを押す』ていうActionってあるのでしょうか? 以上 ご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • 教えてください。 エクセルの表計算を始めたばかりです。 引き算だけの表

    教えてください。 エクセルの表計算を始めたばかりです。 引き算だけの表計算ですが、セルの列にところどころ、#VALUE!が表示されます。 データを入力すれば#VALUE内に計算はしてくれます。先月のデータをコピーして入力、今月分の入力すると、#VALUEがでるところがでます。エラーメッセジとのことなので、心配で質問させてもらいました。基本ができてなく、やり始めたので先がみえないので、ご回答よろしくお願いします。  

  • 平方根の計算について教えてください。

    平方根の計算について教えてください。 平方根の計算を行うときに 1=√1=√((-1)^2)=-1 となってしまい 1=-1 という矛盾した計算結果になってしまいます。 なぜこのようになるのか教えてください。 よろしくお願いします。

  • 計算式を教えてください

    添付した画像のような表で、1行にたいして値を1ヶ所だけ入力します。例えばD列に値を入力した場合、B行に"Aさん"と表示されるようにしたいのですが、どのような計算式を入れると良いのか教えて下さい。よろしくお願いします。