Java JFrame中不需要的JPanel边框

Java JFrame中不需要的JPanel边框,java,swing,awt,Java,Swing,Awt,我试图用一个JPanel填充JFrame并给它上色,但由于某些原因,我在右下角的边缘上得到了一个边框 我的代码: public class Main extends JFrame { public MyPanel myPanel = new MyPanel(); public static void main(String args[]) { Main main = new Main(); main.init(); }

我试图用一个JPanel填充JFrame并给它上色,但由于某些原因,我在右下角的边缘上得到了一个边框

我的代码:

public class Main extends JFrame {

    public MyPanel myPanel = new MyPanel();

    public static void main(String args[])
    {
        Main main = new Main();
        main.init();
    }

    public void init()
    {
        this.setSize(300,400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setContentPane(myPanel);
        this.setVisible(true);
    }

    @Override
    public void paint(Graphics g)
    {
        myPanel.paintComponents(g);
    }

    class MyPanel extends JPanel
    {
        @Override
        public void paintComponents(Graphics g)
        {
            g.fillRect(0, 0, getWidth(), getHeight());
        }
    }
}
显示:


使用此方法会使油漆链短路

@Override
public void paint(Graphics g) {
    myPanel.paintComponents(g);
}
这并不是真的做任何有用的事情,所以你可以删除它。您还需要覆盖
MyPanel
中的
paintComponents
而不是
paintComponents

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
旁白:

  • 您只需创建一个面板并调用
    setBackground
    即可获得此功能

您正在使用此方法使油漆链短路

@Override
public void paint(Graphics g) {
    myPanel.paintComponents(g);
}
这并不是真的做任何有用的事情,所以你可以删除它。您还需要覆盖
MyPanel
中的
paintComponents
而不是
paintComponents

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
旁白:

  • 您只需创建一个面板并调用
    setBackground
    即可获得此功能

您正在使用此方法使油漆链短路

@Override
public void paint(Graphics g) {
    myPanel.paintComponents(g);
}
这并不是真的做任何有用的事情,所以你可以删除它。您还需要覆盖
MyPanel
中的
paintComponents
而不是
paintComponents

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
旁白:

  • 您只需创建一个面板并调用
    setBackground
    即可获得此功能

您正在使用此方法使油漆链短路

@Override
public void paint(Graphics g) {
    myPanel.paintComponents(g);
}
这并不是真的做任何有用的事情,所以你可以删除它。您还需要覆盖
MyPanel
中的
paintComponents
而不是
paintComponents

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
旁白:

  • 您只需创建一个面板并调用
    setBackground
    即可获得此功能

但是如果我把它拿出来,什么都不会被涂上!这就解决了问题。非常感谢。但是如果我把它拿出来,什么都不会被画!这就解决了问题。非常感谢。但是如果我把它拿出来,什么都不会被画!这就解决了问题。非常感谢。但是如果我把它拿出来,什么都不会被画!这就解决了问题。非常感谢。