• ベストアンサー

ウィンドウサイズを変更しても、グラフが適切に表示されるには?

Javaでグラフを作成する際に、今まで私はdrawStringやdrawLineなどで枠や軸、目盛りや数値などを書いていたのですが、この場合だとウィンドウサイズを変更すると、例えばサイズを大きくすると描いた部分がそのままで空白の部分だけが大きくなってしまいます。 そのようなことがないように、ウィンドウサイズを大きくしたり小さくしたりしても、その変更に伴ってグラフが適切に変化するようにするために、何かいい方法はないでしょうか? よろしくお願いします。

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

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

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

こんにちは、 外しているかもしれませんが、こんなことでしょうか。 ウィンドサイズが、変更されると getWidth()、getHeight()が、変更さえたサイズで、 値が自動的に変わります。 ********************************************************************** package addpanel; import java.awt.Color; import javax.swing.JPanel; /** * * @author */ class jp extends JPanel{ public jp() { } protected void paintComponent(java.awt.Graphics g) { super.paintComponent(g); double x,y,dx,dy,xw,yh; int i; // x,y軸の長さ xw =getWidth()*0.85; yh =getHeight()*0.85; // x,yの目盛り(十分割) dx = xw/10.0;dy=yh/10.0; //原点 x=getWidth()*0.05; y=getHeight()*0.95; // y軸 for(i=0;i<11;i++){ g.drawLine((int)x,(int) y,(int)x,(int)( y-yh)); x=x+dx; } x=(int)(getWidth()*0.05); y=(int)(getHeight()*0.95); // x軸 for(i=0;i<11;i++){ g.drawLine((int)x,(int) y,(int)(x+xw),(int) y); y=y-dy; } } } public class addpanel extends javax.swing.JFrame { jp p ; /** Creates new form addpanel */ public addpanel() { p = new jp(); initComponents(); getContentPane().add(p); p.setBackground(Color.YELLOW); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" 生成されたコード"> private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300); } // </editor-fold> /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new addpanel().setVisible(true); } }); } // 変数宣言 - 編集不可 // 変数宣言の終わり }

kamakuragengorou
質問者

お礼

こんにちは。 いつもありがとうございます。まさにこの通りです。これが「相対的に」という意味なのですね! 私は全然思いつきませんでした。本当にありがとうございした。助かりました。

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

ウィンドウサイズと相対的にグラフを描けばよいだけではないですか?

kamakuragengorou
質問者

お礼

ご返答ありがとうございます。 相対的、ですか。ふむふむ。確かにそれができれば実現しますね。しかし私の知識ではそれができないのです...。

関連するQ&A

  • グラフでサイズ変更できなくなってしまいました。

    エクセルでグラフを作りました。グラフのサイズなどは左クリックしてそののち上下左右や斜めにできた黒い四角にマウスのポインタを持っていくと矢印が変わるのでそれで左クリックしたまま動かすとサイズが変更します。しかしy軸にある数値軸ラベルは四角にポインタを合わせても何も変化が起こりません。これって何が原因かわかりますか?教えてください。数値軸ラベルはグラフのオプションでy数値軸というところに入れた文字で全部出てこないで一部隠れてしまっています。

  • Excelのグラフ表示

    WinXP,Excel2002を使用してます。 いろいろと調べたのですが、どうしても分からないので 分かる方教えて下さい。 Excelのデータより“積み上げ横棒グラフ”を作成します。 (1)数値軸および数値軸目盛線を非表示にしなさい。 と、課題が何点かある中(1)だけどうしても分かりません。 ツールバーより「グラフのオプション」で「目盛線」の Y/数値軸の目盛線のチェックを外すと数値軸目盛線と共に 項目軸まで消えてしまいます。 どうかお願い致します。

  • エクセルのグラフで特定の目盛線の色を変更する。

    いつもアドバイスを参考にしています。 エクセルのグラフについて質問があります。エクセルでグラフを作成したとき、ある特定の数値軸(数値軸の値を目盛線にリンクさせ特定の数値軸の目盛線の色を変更する。)の目盛線の色を変更するには、オートシェイプを使用する以外に何か方法はありますか?

  • Excel 2007グラフ の軸を変更すると・・・

    質問を見ていただきありがとうございます グラフのことで教えてください。 Excel2007でグラフを作っているのですが、 軸の数値を変更すると グラフがおかしくなるのです 100% ■ 50% ■ ■ 10% ■ ■ 0%  ■ ■ 自動的に出てきた目盛で、こういう感じだったのですが 軸の数値を希望の数値に変えると 150 100 50 10 0 _ _ _ すべてぺったんこになってしまうのです 直せないかと、色々してみましたが、出来ません 申し訳ないのですが、解決方法を教えてください よろしくお願いします  

  • エクセル グラフ 特定の目盛の色を変えたい

    エクセル2003をしようしています。 折れ線のグラフを作成しました。 特定の"数値軸目盛線"の色や線種を変更することは可能でしょうか。 また特定の"数値軸目盛線"と別の"数値軸目盛線"の間の背景の 色だけを変えることは可能でしょうか。 その範囲の中にグラフの線があることを目立たせたいのです。 どうぞ宜しくお願いします。

  • Excel98でグラフ数値軸の表示単位変更

    こんにちは。Excel98でグラフの数値軸の表示単位を「千」などに変更できないのでしょうか? Excel2000では数値軸の書式設定→目盛→表示単位→百、千、万などに変更できます。しかし98にはその機能がないらしいのです。友人が困っているのですが、私は2000なのでよくわかりません。知っている方教えて下さい。

  • エクセルのグラフで・・・。

    エクセルの集合縦棒グラフで、 数値軸の [軸の書式設定]-[目盛]タブから指定した目盛間隔〔2000000〕と最大値〔30000000〕の変更をするんですが、変更したのと違う目盛間隔〔5000000〕と表示されます。何度しても変更されません。どうすれば変更した数字が表示されますか?

  • EXCELグラフ

    エクセルでグラフを作成して、項目軸を反転しようとしたら、数値軸も一緒に反転して、数値軸がグラフの上にくるんです。どのようにしたら、項目軸だけ軸の反転ができるんでしょうか?ちなみに項目軸を選択して、軸の書式設定の目盛で行っています。

  • Excel2003 Y軸最大値の変更によるグラフサイズの変化

    Excel2003 でグラフを作成しています。(折れ線グラフ(グラフオブジェクト)) 目盛最大値の桁数を変更(5000→10000, 10000→5000など)すると、グラフのプロットエリアの大きさが変化してしまいます。 目盛最大値に関わらず、プロットエリアの大きさを固定にする方法はあるでしょうか。 教えてください。お願いします。

  • Excelグラフで

    XP/Excel2002でグラフを作成しました。 質問 数値軸目盛線に色づけできますが目盛線全部です。 1本だけ色づけすることは可能でしょうか。 たとえば、目盛りが1.2.3.4.5とあった場合、3を基準線として強調したいので赤 にしたいとか。 よろしくお願いします。

専門家に質問してみよう