JFrame中不需要的JPanel边框

时间:2015-02-25 18:23:12

标签: java swing awt

我正在尝试使用JPanel填充JFrame并使用JPanel颜色,但出于某种原因,我在右下角有一个边框。

我的代码:

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());
        }
    }
}

节目:

enter image description here

1 个答案:

答案 0 :(得分:3)

您使用此方法短路油漆链

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

这并没有真正做任何有用的事情,所以你可以删除它。您还需要覆盖paintComponent

中的paintComponents而不是MyPanel
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillRect(0, 0, getWidth(), getHeight());
    }

除了:

  • 您可以简单地创建一个面板并调用setBackground来获得此功能