ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

例で考えるJavaプログラミング (12)

2013-01-05 17:33:31 | 暮らし
progJ.pdf
progJ-s.pdf
progJ-e.pdf

記事一覧

                            JPanel への描画

progJ.pdf の[#60]-[#61]に対応する部分を追加しました.
※ *.class は http://hakurei-isl.org/m-miyata/jar/App61-dist.zip,

//App61.java
import java.awt.*;
import javax.swing.*;
class Fig61 extends JPanel{
    Fig61( ){
        super( );
        setPreferredSize(new Dimension(300, 200));
        setBackground(Color.white);
    }
    //public void paint(Graphics g){//非推奨
        //super.paint(g);
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawLine(0,0,200,200);
        g.drawString("Hello", 50, 150);
        g.drawOval(150, 50, 100, 50);
    }
}
public class App61 extends App50 {
    JPanel p1;
    App61( ){
        super( ); setSize(350, 300);
        p1 = new JPanel( ); p1.add(new Fig61( ));
        Container cp = getContentPane(); cp.add(p1);
    }
}
//Main.java
public class Main {
    public static void main(String[] args) {
        //App61 app = new App61();//要伸縮(最初描画せず)
        //Thread th = new Thread(new App61()); th.start();//要伸縮
        //EventQueue.invokeLater(new App61());//要伸縮
        EventQueue.invokeLater(new Runnable( ) {
            public void run( ) {new App61( );}
        });
    }
}
--------------------
//App60.java
import java.awt.*;
import javax.swing.*;
public class App60 extends App50 {
    App60(){super(); setSize(350, 300);}
    //public void paintComponent(Graphics g){//描画せず
        //super.paintComponent(g);//エラー
    public void paint(Graphics g){
        g.drawLine(0,0,200,200);
        g.drawString("Hello", 50, 150);
        g.drawOval(150, 50, 100, 50);
    }
    public static void main(String[] args) {
        App60 app = new App60();
    }
}



最新の画像もっと見る

コメントを投稿