簡體   English   中英

當frame.setUndecorated(true)時,JPanel不繪制

[英]JPanel doesn't paint when frame.setUndecorated(true)

編輯:在構造函數中走動表情后,我現在設法得到它有時完全和有時部分繪制。

我正在用Java2D創建此游戲,基本上,如果我設置setUndecorated(true),它將不再在面板中顯示任何內容。 屏幕的背景顏色保持黑色。

我這樣初始化框架:

panel = new WindowManager();

JFrame frame = new JFrame(Program.TITLE);
frame.setContentPane(panel);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setMinimumSize(new Dimension(800, 800));

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);

frame.addKeyListener(new KeyListener()
...
frame.setVisible(true);

我的WindowManager(擴展了JPanel)是這樣的:

repaintTimer = new Timer(1000 / 60, e -> repaint());
repaintTimer.start();
setBackground(Color.black);

addMouseListener(new MouseListener()
...

paintComponent替代以super.paintComponent(g)開頭

其他代碼有點難,因為它是一個很大的項目。

我不知道是什么原因造成的,所以我希望你們中的一個能做到。

預先感謝邁克爾

問我的教授,

顯然,將其全屏顯示並置於未修飾狀態會更改Windows中的屏幕模式。

將framesize設置為小於窗口大小(例如,height,width-1)的值即可對其進行修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM