アプリ版:「スタンプのみでお礼する」機能のリリースについて

おはようございます。javaプログラムについて質問致します、宜しくお願いします。

windowをリサイズした時にwindowのサイズを取得するこーどを書きましたが、
「int ws」にうまく値が入りません、イベントは取っているのです、原因が分かりません。
「Demension()」の使い方が間違っているような気がするのですが、どこがどのように
間違っているのかが、理解できません。
以上宜しくお願い致します。

====================================================
public class Resize_Test extends JFrame
{
private static final long serialVersionUID = 1L;

Resize_Test()
{
this.setTitle("Resize_Test");
this.setSize(200, 200); //フレームの初期サイズ
this.setLocationRelativeTo(null); //フレームを画面の中央に表示
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

//フレームにComponentListenerを登録
this.addComponentListener( new ComponentAdapter_JFrame() );
}

public static void main(String[] args)
{
Resize_Test jframe = new Resize_Test();
jframe.setVisible(true); //フレームの表示
}


public void paint( Graphics g )
{
super.paint(g); //スーパークラスから描画処理
g.drawString("test", 30, 50); //文字の描画
g.drawLine(0, 0, this.getWidth(), this.getHeight()); //線 の描画
}

class ComponentAdapter_JFrame extends ComponentAdapter
{
//フレームのサイズが変更されたとき
public void componentResized(ComponentEvent e)
{
Resize_Test.this.repaint(); //フレームをリペイント
int ws = ( new Dimension()).getSize().width ;
System.out.println("ws = " + ws ) ;
}
}
}

A 回答 (2件)

……っと失礼、このサイトの自動リンクは括弧を認識しないようです。


No.1 の回答の外部リンクを先頭h抜かしで再記します。
一番目:ttp://docs.oracle.com/javase/jp/6/api/java/awt/Dimension.html#Dimension()
二番目:ttp://docs.oracle.com/javase/jp/6/api/java/awt/event/ComponentEvent.html#getComponent()
    • good
    • 0
この回答へのお礼

hitomuraさん、回答有り難うございます。

以下のように修正しましたが、やはりエラーがでます。
最近Javaの勉強を始めたばかりで、参考書などを見ながら我流の勉強が原因だとは思うのですが、、、、、一体どこが間違いなのか教えて貰えないでしょうか。
宜しくお願いします。

======================================
class ComponentAdapter_JFrame extends ComponentAdapter
{
//フレームのサイズが変更されたとき
public void componentResized(ComponentEvent e)
{
Resize_Test.this.repaint(); //フレームをリペイント
// int ws = ( new Dimension()).getSize().width ;
System.out.println("ws = " + ((Dimension) e.getSource()).getSize().width) ;
}}

お礼日時:2015/09/05 23:50

当たり前ですね、 new Dimension() では幅も高さも 0 のデータを作るだけですから。


http://docs.oracle.com/javase/jp/6/api/java/awt/ …

おそらく質問者様はイベントハンドラの中で Dimension を作れば Java が気を利かせてイベントを起こしたコンポーネントのサイズを入れてくれると思ったのかもしれませんが、残念ながらそんなややこしいことは Java はやってくれません。
サイズを知りたければそのイベントを起こしたコンポーネントに聞けばいいのです。
http://docs.oracle.com/javase/jp/6/api/java/awt/ …
    • good
    • 0
この回答へのお礼

有り難うございました、解決いたしました。
今後とも宜しくお願いします。

お礼日時:2015/09/06 11:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!