Java:未修饰的JFrame不显示图形?

时间:2014-06-29 21:36:43

标签: java swing graphics jframe jpanel


我已经用Java编程了大约六个月了,并且在JPanels和JFrames中完成了许多与Graphics相关的工作。但最近我遇到了问题。我之前制作的所有JFrame总是setUndecorated(false),但我需要创建一个setUndecorated(true)。所以我像往常一样尝试将frame.setUndecorated(true)放在所有frame的规格之上,所以它看起来像这样:

public static void main(String[] args){
    JFrame frame = new JFrame("Frame");
    frame.setUndecorated(true);
    frame.setSize(600, 800);
    frame.setVisible(true);
    frame.add(new custompanel());
}

custompanel类:

public class custompanel{
    public void paintComponent(Graphics g){
        g.fillRect(100, 100, 100, 100);
    }
}

g中的custompanel不会绘制任何内容。

但是,如果我删除frame.setUndecorated(true)或将其更改为frame.setUndecorated(false),则会绘制一个矩形。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

假设CustomPanel延伸JComponentJPanel,请在添加CustomPanel后使框架可见。调用super.paintComponent(g)是绘制任何背景组件的好主意。

frame.setVisible(true);