JLayredPane background fix

This commit is contained in:
iryupnik 2020-04-02 15:17:38 +02:00
parent 810b051145
commit 5e4d1f572f
2 changed files with 11 additions and 3 deletions

View File

@ -19,6 +19,7 @@ public class DialogBar extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
ImageDialog.parseBackground();
g.drawImage(ImageDialog.getDialogBack(), 0, 0, WindowOfFreeMove.CELL_SIZE * WindowOfFreeMove.WINDOW_WIDTH,
WindowOfFreeMove.CELL_SIZE * WindowOfFreeMove.WINDOW_HEIGHT / 4, this);

View File

@ -30,8 +30,8 @@ public class WindowOfFreeMove extends JFrame {
public static final int KEY_DOWN = 40;
public static final int KEY_EVENT = 69;
public static final int KEY_FULLSCREEN = 115;
public static final int KEY_ESCAPE = 27;
private static final int KEY_FULLSCREEN = 115;
private static final int KEY_ESCAPE = 27;
private Canvas canvas;
private DialogBar dialogBar;
@ -84,6 +84,9 @@ public class WindowOfFreeMove extends JFrame {
isReadyToPaint = false;
canPersonMove = true;
JLayeredPane lp = getLayeredPane();
JPanel background = new JPanel();
background.setBounds(-WINDOW_WIDTH/2, -WINDOW_HEIGHT/2, (CANVAS_WIDTH + WINDOW_WIDTH)*CELL_SIZE, (CANVAS_HEIGHT + WINDOW_HEIGHT)*CELL_SIZE);
background.setBackground(Color.BLACK);
canvas = new Canvas();
camera = new Camera(this, canvas);
@ -119,9 +122,11 @@ public class WindowOfFreeMove extends JFrame {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KEY_ESCAPE){
dispatchEvent(new WindowEvent(windowOfFreeMove(), WindowEvent.WINDOW_CLOSING));
return;
}
if (e.getKeyCode() == KEY_FULLSCREEN){
if (getExtendedState() == MAXIMIZED_BOTH)
setExtendedState(NORMAL);
else
@ -147,8 +152,9 @@ public class WindowOfFreeMove extends JFrame {
}
});
lp.add(dialogBar, JLayeredPane.MODAL_LAYER);
lp.add(canvas, JLayeredPane.PALETTE_LAYER);
lp.add(dialogBar, JLayeredPane.POPUP_LAYER);
lp.add(background, JLayeredPane.DEFAULT_LAYER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(true);
@ -231,6 +237,7 @@ public class WindowOfFreeMove extends JFrame {
mapPainter.getActualMap().getPerson().move();
camera.moveCamera();
canvas.repaint();
dialogBar.repaint();
});
timer.start();
while (true) {