Java256Swing | サンプルソース | |
---|---|---|
いよいよSwingの登場。燃える男の熱いハートをJPanelにぶつけちゃえ! |
Java256Swing.java |
/** * 愛のJava256本ノック for Java 5.0 * Javaサンプルソース ver0.2C "Java256Swing" * Java256Swing.java 「JPanelに色を指定して文字を描画する」 * * 2005/09/23 制作:安永ノリカズ * * 【コンパイル&実行方法】 * >javac Java256Swing.java * >java Java256Swing * 【キーワード】 * コンテンツ区画(content pane), Look & Feel, オーバーライド(override:上書き) * コンポーネント(component:部品), コンテナ(container:入れ物) * 【試してみよう】 * setDynamicLayoutをコメントアウトし、どう挙動が変化するか調べる。 * (特に、ウィンドウのサイズを変更したときに注意) * 文字だけではなく、図形も描画する。 * JPanelではなく、JLabelを使って赤い文字を表示する。 */ import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.lang.String; import java.lang.System; import javax.swing.JFrame; import javax.swing.JPanel; public class Java256Swing extends JFrame { public Java256Swing() { add(new DrawPanel()); } static public void main(String[] A00) { Toolkit.getDefaultToolkit().setDynamicLayout(true); JFrame L00 = new Java256Swing(); L00.setTitle("文字を表示"); L00.setDefaultCloseOperation(EXIT_ON_CLOSE); L00.setBackground(Color.white); L00.setSize(300, 100); L00.setVisible(true); } } class DrawPanel extends JPanel { public DrawPanel() { setBackground(Color.white); } public void paintComponent(Graphics A00) { super.paintComponent(A00); A00.setColor(Color.red); A00.drawString("燃える男の赤いJava256、それがお前だぜ。", 10, 30); } } /* ■ クラスの外でちょっと一言 ■ Swingプログラミングでは、JFrame(いわゆるウィンドウ)などの土台となる入 れ物(コンテナ)に、様々な部品(コンポーネント)を追加していくことで、機能を 組み込んでいきます。 このサンプルでは、色つきの文字を表示するのに、JPanelを拡張し、文字表示機 能を持たせたDrawPanelクラスを作り、そこで、描画メソッドである paintComponentを上書き(オーバーライド)することで、文字を表示する処理を実 装しました。 このプログラムを作るまで、Swingに対して、「中身を表示しながら、ウィンド ウのサイズも変えられないのかよ、このタコ!」とか、「いちいち背景を塗りな おすから遅いんだよ、もうイヤンバカン!」とか、文句ばかりを言ってたんです よ。でも実は、僕が制御の方法を知らないだけのことでした。Swingさんゴメン なさい。 */