2

私は JFrame の実験を開始し、達成したい最初のタスクはfillRect()ordrawRect()メソッドを使用して 50 ピクセルの正方形を描画することでした。残念ながら、実行後、プログラムは正方形ではなく長方形を示しました。

これは間違いなく正方形ではありません

私のコード:

package javaapp;

import java.awt.Graphics;
import javax.swing.JFrame;

public class JavaApp extends JFrame{

    public JavaApp() {
        setTitle("Voorbeeld");
        setSize(250, 250);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public void paint (Graphics g){
        g.fillRect(0, 0, 50, 50);
    }
    public static void main(String[] args) {
        new JavaApp();
    }   
}
4

1 に答える 1

4

フレームは実際には左上隅から始まります。JPanel を追加してペイントするだけで簡単です。それ以外の場合は、呼び出すことができますsetUndecorated(true)

class JavaApp extends JFrame {

    public JavaApp() {
        setTitle("Voorbeeld");
        setSize(250, 250);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        add(new JPanel() {
            protected void paintComponent(Graphics g) {
                g.setColor(Color.BLACK);
                g.clearRect(0, 0, getWidth(), getHeight());
                g.fillRect(0, 0, 50, 50);
            }
        });
    }

    public static void main(String[] args) {
        new JavaApp();
    }
}

代わりに paintComponent を使用してください。

于 2016-01-11T18:10:03.483 に答える