1

このプログラムを実行すると、空白の JFrame しか表示されません。paintComponent メソッドが機能しない理由がわかりません。これが私のコードです:

package com.drawing;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyPaint extends JPanel {

    private void go() {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        frame.setSize(400, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.add(panel);
        frame.setVisible(true);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.YELLOW);
        g.fillRect(50, 50, 100, 100);
    }

    public static void main(String[] args) {
        My paintTester = new MyPaint();
        paintTester.go();
    }
}
4

2 に答える 2

2

カスタム ペイント ロジックを含まないプレーンJPanelを追加しています。JFrame削除する

JPanel panel = new JPanel();

そして追加

frame.add(this);

ただし、2 つのクラスを維持することをお勧めします。メイン クラスと、関心を分離するJPanelためのペイント ロジックを備えたカスタムです。

于 2013-07-14T19:52:22.253 に答える