文字列の表示
Graph2クラスで作った文字と直線をMainFrameクラスで作ったフレームに表示させたいのですが、フレームが作成されるだけで文字と直線が表示されません。どうすれば表示されるのか是非教えてください。お願いします。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Graph1 {
public static void main(String argv[]) {
MainFrame MF = new MainFrame();
MF.setVisible(true);
}
}
class MainFrame extends Frame {
public MainFrame() {
setLocation(500 , 200);
setTitle("MainFrame");
setSize(500 , 300);
setLayout(null);
//Graph2 aGraph2 = new Graph2();
//aGraph2.show();
addWindowListener(new MyWinL());
}
private class MyWinL extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.out.println("終了しました。\n");
System.exit(0);
}
}
}
class Graph2 extends JApplet {
public void paint(Graphics g) {
g.setColor(Color.GRAY);
for (int i=0; i < 5; i++) {
g.drawLine(0, 50*i, 400, 50*i);
}
for (int i=0; i < 9; i++) {
g.drawLine(50*i, 0, 50*i, 200);
}
Font font1
= new Font("Serif" , Font.PLAIN,30);
Font font2
= new Font("SansSerif" , Font.PLAIN,30);
Font font3
= new Font("MS P明朝" , Font.PLAIN,30);
Font font4
= new Font("MS Pゴシック" , Font.PLAIN,30);
g.setColor(Color.RED);
g.setFont(font1);
g.drawString("Hello! Java world!", 50, 50);
g.setFont(font2);
g.drawString("Hello! Java world!", 50, 100);
g.setColor(Color.BLUE);
g.setFont(font3);
g.drawString("Hello! Java world!", 50, 150);
g.setFont(font4);
g.drawString("Hello! Java world!", 50, 200);
};
}
お礼
記述頂いたサンプルソースのおかげで、問題が解決しました!!! まず、同様のプログラムを私も書き(StarではなくDojad5.1で)、 実行したところ、おっしゃるとおり、蓄積されるのです。 では、なぜ?? はい、原因がわかりました。 質問のコードには書いていませんでしたが、 「g.fillRect(0,0,getWidth(),getHeight());」 こいつが、真っ白しろすけの生みの親でした!! この1文は、文字列出力する前の、下準備として入れられていたものなのですが、 こいつが真っ白提供者だったとは…。 って、初めからそれを書いておけよ、とツッコミが入りそうで恐縮ですが、 無事、原因が分かって良かったです。 いやはや、助かりました。 粘り強く私の質問にお付き合い下さり、本当にありがとうございました。 また機会がございましたら、色々と教えて下さい!