1

button1をクリックするたびに、Jframeの現在のサイズを取得したい。これは、ボタンをクリックしたときに最初にbutton1clickeventに書き込んだコードですが、幅と高さは表示されますが、Jframeのサイズを変更してから、ボタン1をクリックすると、同じ幅と高さが表示されます。値はいつでも変更されていません。

  AppDisplay ap=new AppDisplay(); //class which has got the JFrame
    int f12;
  f12=ap.getContentPane().getSize().width;
  System.out.println(f12+"\n");
  f12=ap.getContentPane().getSize().height;
  System.out.println(f12);
4

3 に答える 3

2

あなたの参照は間違っていると思いますObjectAppDisplay新しいインスタンスが必要な理由とは?

また、何が問題なのFrame.getSize();ですか?

于 2012-07-29T19:19:02.247 に答える
1

JFrame 内にあるコンテンツ ペインのサイズを印刷しています。getSize()フレームのサイズを取得するには、JFrame のメソッドを使用します。

 final Dimension size = ap.getSize();
 System.out.println(size);

また、MadProgrammer は、表示するコードが の新しいインスタンスを作成することを適切に指摘していますAppDisplay。インスタンスを表示しなくても、必要なだけインスタンスを作成できます。オブジェクトのライフサイクルとそれらを参照する変数名のスコープを常に慎重に検討して、目的のオブジェクトを毎回参照できるようにする必要があります。

于 2012-07-29T19:30:32.970 に答える
0

私が見つけた1つのアイデア。jFrame の 1 つに jButton ("jbutton1") を配置します。ボタンの非アクション実行コードを記述します。

System.out.println(this.getSize());

次にフレームを実行します。フレームを必要なサイズに調整します。次にボタンをクリックします..更新されたサイズを取得します..次に、jframeのプロパティからフレームの実際のサイズとして設定できます...

于 2013-06-23T06:46:49.777 に答える