• ベストアンサー

グラフの描画

JBuilderを使っています。  グラフを表示させたいのですが、オブジェクトに何が適しているのか調べてもわかりません。現在、SwingのLabelを使っています。半信半疑なままプログラムに取り組んでいる状態です。アドバイスをお願いします。  また、VBのように”あるオブジェクトを指定して、そこにグラフを描画する”といったことのできるメソッドなどを知りたいです。お願いします。m(_ _)m

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

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

  • ベストアンサー
  • kacchann
  • ベストアンサー率58% (347/594)
回答No.3

↓こんなカンジにするのが、とっても無難で簡単。 http://www1.linkclub.or.jp/~yukos/java/sample15.htm 部品として ■数字を入力するためのTextField ■グラフ描画を開始するためのボタン ■グラフ描画領域としてFrameをそのまま使っている。 ------------------------------ ※JLabelで背景色が反映されないのは、背景色が「透明」だからかな? (透明だから、すけて背後のウインドウの色がそのまま見える) ↓こんなような記述にする。 JLabel label = new JLabel("ラベル"); label.setOpaque(true);//これで不透明 label.setBackground(Color.red);

maruokundesu
質問者

お礼

JLabelの件,無事に解決しました。 穴が空いていることに気が付かなかったようで,恥ずかしい気がします。 色々とありがとうございました。助かりました。

その他の回答 (2)

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.2

以下は、swing限定の話デス。 ------------------- 独自描画用の領域について、ですが、 JPanelでもいいかも。 (※JLabelに比べて言えば、JPanelは「特に特徴のないクラス」) http://java.sun.com/docs/books/tutorial/uiswing/components/components.html ------------------ 個人的には、JPanelやJLabelの上位クラスである、JComponentも使えるような。 なんでもいいかも?

maruokundesu
質問者

お礼

今回も回答頂き、ありがとうございます。 JPanelなどでも、あまり大差ないかもしれませんが、実行してみます。 そこで、仮にJComponentを描画領域にした場合、textFieldからのイベントとしてどのようなメソッドを使うことが考えられるか、宜しければ参考にさせて下さい。

回答No.1

こんにちは。 えー、JLabelに色を付けて大きさを指定すれば問題ないと思います。 僕がちなみに学校でやったときは、Canbasクラスかなんかを用意してそこにGrafics.fillRect()でグラフを書いていました。 あと、今度の25日に発売されるWebDBPressという本にグラフを出力してくれるライブラリの紹介が特集されるみたいです。こっちのほうは便利だと思いますが、初心者の方には少し難しいかもしれません。

参考URL:
http://www.gihyo.co.jp/magazines/wdpress
maruokundesu
質問者

お礼

Canvasクラスを私も考えてはみたのですが、もっと簡単にできる方法があるのでは…と思っていました。 実際に、Labelに色をつけて実行してみたところ、Formの背景色と同じ色になってしまい、うまくいきませんでした。 今度25日に発売される雑誌を見にいこうと思います。私にわかるようであれば、購入しようと考えています。どうも、ありがとうございました。

関連するQ&A

  • Jpanelにグラフを書くプログラム

    質問させて頂きます。 今、ファイルから西暦、月、日、時間、そのときの温度、湿度を読み込んでグラフ表示するプログラムを作っています。そこで、Swingを使ってPanelを三つ作成し、一番上のPanelにグラフ、二番目にデータの日付を指定するJComboBoxボタン(何年何月何日等)、三番目にグラフ描画時の現在時刻を表示するプログラムを作っています。 そこで質問なんですが、一番目のPanelにグラフを表示する方法がわからなくて困っています。 これのPanel1に簡単な図を描く方法を教えていただければ自分でも考えられると思いますので、よろしくお願いします

    • ベストアンサー
    • Java
  • Chartコントロールを使用してのグラフ描画につい

    Chartコントロールを初めて使用します。 VB.net(VB2012)でChartコントロールを使用してグラフを描画するアプリを作っています。 X軸に稼動日  1   2   3  ・・・・ Y軸に時間   1.5  1.0  2.75 ・・・・ 上記のようなデータで折れ線グラフを描くことはできたのですが グラフはそのままで、Y軸のラベル表示を実数から時間表示に変更することは 可能でしょうか? (例 1.5→1:30、 1.0→1:00、 2.75→2:45 ・・・) Y軸のLabelSyale.Formatプロパティを設定すればいいのかなと思いましたが 上手くいきません。 分かる方いらっしゃいましたら、ご教授下さい。宜しくお願いします。

  • Excelのグラフに重ねて描画した図形が表示されない

    Excelでグラフを作成し、その上に重ねる形で図形を描画しました。 (グラフを選択したのち、図形描画ツールバーの「オートシェイプ」ボタンを使って作成しました) すると、グラフの選択を解除すると、描いたはずの図形が消えてしまいます。でも、グラフを選択すると、表示されます。印刷プレビューでも表示されますし、実際に印刷もされます。 グラフを選択していなくても図形が表示されたままにしたいのですが、どうすればよいかご存知の方、ご教授下さい。

  • Javaアプレットで描画の中断がしたい

    Java初心者です。学校の課題で数学シュミレーションの結果を Javaアプレットで表示するプログラムを作成しています。 この課題のJavaアプレットでは 複素平面のシュミレーション(計算結果を色のグラデーションで表示する)なのですが、 チョイスやボタン、マウスクリックなどによって、 初期条件や、描画方式、表示範囲などを指定することができます。 とりあえず、シュミレーション結果の描画は 試行錯誤の結果表示ができるようになりました。 paint(Graphics g)メソッドで数値計算、及び描画をしています。 (ちなみに余談かもしれませんがダブルバッファリングをしていて、 描画内容をImageとして書き込んでおいて描画するというかたちです。) 「計算途中(計算には結構時間がかかる)に 新たにボタンなどで指定条件が変更された場合、 現在の描画を中断して次の計算と描画を開始できるように プログラムを改良しなさい」というのが今回の課題です。 つまり、「プログラム的にはpaintメソッドが実行されている途中に 特定のイベントが発生したらpaintメソッドを中断し、 もういちど呼びなおしなさい」ということかと思われます。 スレッドを作り、そのスレッドを中断するなども考えました。 インターネットで検索もしてみましたが、 なかなか情報を見つけられず困っています。 学生が作るプログラムなのでそんなに難しいことではないのだと思うのですが 解決できませんでした。 どうぞよろしくお願いします。

  • グラフィックメソッドについて

    VBでグラフィックコントロールで円を書いたときはうまく表示されるのに グラフィックメソッドで円を書いたときはうまく表示できません。 <詳細> 最初からグラフィックメソッドで円を描くとちゃんと表示される。 プログラムが存在しているところに追加で円を描こうとすると(円グラフ見たいの)うまくかけない。 form_loadの画面にcall で呼び出しても,描画が行われない。 これらのことから,表示するために何が必要なのか教えてください。 お願いします。

  • グラフを表示するとき「’~’メソッドは失敗しました。」エラー発生

    またお世話になります。VB初心者です。 折れ線グラフを表示する処理を作りました。 開発機では上手くいったので、他のPCでテストしたところ 下記のようなエラーになってしまいます。 「’~’メソッドは失敗しました。’~’オブジェクト」 但し、毎回エラーになるというわけではなく 正しく表示してくれる場合もあります。 エラーのときも「OK」をクリックすると 途中までの状態を表示する場合もあるし (これも一定の状態ではない) 終わってしまう場合もあります。 開発環境: Windows2000(SP4) VB6.0 処理内容:  1.フォームにOLEオブジェクトを作成(Microsoft Graph)  2.フォームを開くとき(Form_Load)に、グラフの値を設定する。    下記のようにグラフのデータシートに数値を一個ずつ    設定しています。(Graphがオブジェクト名です)  Me.Graph.object.Application.DataSheet.Cells(2, 1) = 設定値 このような方法をとっています。 システムの配布先によって環境はいろいろですし 当然のことですが環境に左右されてはいけないので エラーになるにしても状態が一定でない現状に 原因がつかめず困りきっています。 このやり方が良くないのかもしれませんね。 VBでグラフを作成する場合は、どのようにするのがベストなのでしょうか? どなたか対処法をご存知の方、ご教示お願いします。 この情報ではわからない等ありましたら補足いたします。 よろしくお願いいたします。

  • VBでエクセルのグラフを表示したい

    VB6.0とエクセル2003を使っているのですがまずVBから値を取得してエクセルでグラフを作りそのグラフをまたVBに表示したいのですが一回画像ファイルにしてオブジェクトのイメージで表示するしかないのでしょうか?そうであればエクセルのグラフを画像ファイるに直す方法も教えてください。

  • Graphicsクラスを使って描画履歴を残して、しかも色も選択しながら描画を行いたい

    以下のようなドロープログラムを作ってみたのですが 描画色を変更して再描画すると前の描画履歴が消えてしまいます 描画色を変更しても以前の描画履歴の消えないようにするには どのようにすればいいのでしょうか。 文字数制限によりプログラムをアップできませんでしたので一部を記述させていただきます。 グローバルなカラーオブジェクトを用意し class Globe{ static mycol=Color.white; } 二つのラベルを用意して Label red=new Label("■"); Label green=new Label("■"); ラベルそれぞれにマウスリスナーを登録して red.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ GLobe.mycol=Color.red; } }); green.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ GLobe.mycol=Color.green; } }); マウスドラッグによる座標取得を行い public void mouseDragged(MouseEvent e){ x=e.getX(); y=e.getY(); repaint(); } 二つの色を使い分けて描画できるようにしました。 public void update(Graphics g){ setForeground(Globe.mycol); g.fillOval(x-3,y-3,6,6); }

    • ベストアンサー
    • Java
  • エクセル2003のグラフサイズ

    エクセル2003のグラフのサイズをセルに合わせたいのですが・・・・ セルと幅と高さを広げて大きくし、その中にグラフをキッチリ入れたいと思っています。 図形描画のオブジェクトの選択でサイズは指定できますが、セルの数値がピクセルになっているので・・・。効率のよい方法はありますか?

  • イラレでExcelグラフを貼り付け

    Excel2010で散布図を作成し、図としてコピーを選択後、 イラレCS5に貼り付けようとすると 「オブジェクトを拡大・縮小できません。指定した変形を行うと 一部のオブジェクトが描画エリアの外に出てしまいます。」 と表示されてしまいます。 CS2のときにはアートボードという機能がなかったため、 とりあえず貼り付けてから、後でサイズを小さくするということが可能だったのですが、 CS5ではこれが出来なくなっています。 ある程度データ量の小さなグラフであれば、 アートボードをいったんA0とか大きなサイズにしておいて、 グラフを貼り付けて、グラフを小さくしてから、 またアートボードも小さくするという方法が可能ですが、 かなり大きなグラフとこういったことも出来ません。 どうすれば、エラーを出さずにexcelグラフを貼り付けることが出来ますでしょうか?

専門家に質問してみよう