1

クリックするとその下にさまざまなメッセージが表示される赤い円を表示する単純なアプリケーションを作成しようとしています。コードのこの部分は次のとおりだと思います。

g.drawString("DO NOT PRESS", 100, 100);

は正しくコーディングされていますが、開いたウィンドウにテキストが表示されません。これまでの完全なコードは次のとおりです。

import java.awt.Graphics;

import javax.swing.JFrame;

public class BigRedButton extends JFrame {

    public BigRedButton() {

        setTitle("Big Red Button");
        setSize(500, 500);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

    public void graphics(Graphics g) {

        g.drawString("DO NOT PRESS", 100, 100);
}
    public static void main(String[] args){

        new BigRedButton();
    }
}
4

1 に答える 1

4
  1. にはそのようなメソッドがないgraphicsためJFrame、何も呼び出していません。
  2. 最上位のコンテナに直接ペイントすることは避けてください。他のものは別として、これらはダブル バッファリングされておらず、ペイントするとちらつきます。代わりに、カスタム コンポーネント (のようなものから拡張JPanel) を作成し、そのメソッドをオーバーライドする必要がありますpaintComponent
  3. 時間を取って、カスタム ペイントの実行、AWT でのペイント、Swing、および2D グラフィックスを一読する必要があります。

また、読んでいる間、最初のスレッドを読む必要があります

修正

アンドリューが指摘したように、@Overrideアノテーションを使用して、オーバーライドしていると思われるメソッドが実際にオーバーライドされるメソッドであることを確認する必要があります。これにより、プログラムのコンパイルが停止し、期待どおりに動作しない理由を突き止めようとする多くの時間を節約できます。

于 2013-06-21T02:11:11.100 に答える