Java低速GUI Swing 5 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
156:デフォルトの名無しさん 06/11/20 11:42:08 class Canvas extends JPanel { public Canvas self = this; public Canvas() { this.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent arg0) { self.repaint(); }}); } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D)g; g2.clearRect(0, 0, this.getSize().width, this.getSize().height); //画面を一度クリア AffineTransform af = new AffineTransform(); af.setToTranslation(100, 0); g2.setTransform(af); g2.draw(new Line2D.Float(10,50,20,50)); //x軸 } } こんなソースになります。マウスクリックすると短い横線の位置がタブの高さ分下に下がります。 ウィンドウサイズを変更すると元に戻り、またクリックすると位置が下がります。 157:デフォルトの名無しさん 06/11/20 21:00:04 >public Canvas self = this; すまん,うけたw 158:デフォルトの名無しさん 06/11/20 21:35:16 >>155 //g2.setTransform(af); g2.transform(af); 理由はAPI説明のGraphics2D#setTransformの項をよく読むこと。 ちなみに、内部クラスから外側のクラスのインスタンスを参照したいときは、 Canvas.this.repaint(); のように「外側のクラス名.this」と書けば、selfのように自分で持っていなくてもいい。 ただし、外側のクラスが匿名クラスの場合は名前がないため、この書き方はできないので、 別の手段が必要だが。その中にはself=thisのような方法もとりうる方法のひとつではある。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5116日前に更新/197 KB
担当:undef