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 @Override
public void paint(Graphics g) { public void paint(Graphics g) {
super.paint(g);
ImageDialog.parseBackground(); ImageDialog.parseBackground();
g.drawImage(ImageDialog.getDialogBack(), 0, 0, WindowOfFreeMove.CELL_SIZE * WindowOfFreeMove.WINDOW_WIDTH, g.drawImage(ImageDialog.getDialogBack(), 0, 0, WindowOfFreeMove.CELL_SIZE * WindowOfFreeMove.WINDOW_WIDTH,
WindowOfFreeMove.CELL_SIZE * WindowOfFreeMove.WINDOW_HEIGHT / 4, this); 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_DOWN = 40;
public static final int KEY_EVENT = 69; public static final int KEY_EVENT = 69;
public static final int KEY_FULLSCREEN = 115; private static final int KEY_FULLSCREEN = 115;
public static final int KEY_ESCAPE = 27; private static final int KEY_ESCAPE = 27;
private Canvas canvas; private Canvas canvas;
private DialogBar dialogBar; private DialogBar dialogBar;
@ -84,6 +84,9 @@ public class WindowOfFreeMove extends JFrame {
isReadyToPaint = false; isReadyToPaint = false;
canPersonMove = true; canPersonMove = true;
JLayeredPane lp = getLayeredPane(); 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(); canvas = new Canvas();
camera = new Camera(this, canvas); camera = new Camera(this, canvas);
@ -119,9 +122,11 @@ public class WindowOfFreeMove extends JFrame {
public void keyPressed(KeyEvent e) { public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KEY_ESCAPE){ if (e.getKeyCode() == KEY_ESCAPE){
dispatchEvent(new WindowEvent(windowOfFreeMove(), WindowEvent.WINDOW_CLOSING)); dispatchEvent(new WindowEvent(windowOfFreeMove(), WindowEvent.WINDOW_CLOSING));
return;
} }
if (e.getKeyCode() == KEY_FULLSCREEN){ if (e.getKeyCode() == KEY_FULLSCREEN){
if (getExtendedState() == MAXIMIZED_BOTH) if (getExtendedState() == MAXIMIZED_BOTH)
setExtendedState(NORMAL); setExtendedState(NORMAL);
else else
@ -147,8 +152,9 @@ public class WindowOfFreeMove extends JFrame {
} }
}); });
lp.add(dialogBar, JLayeredPane.MODAL_LAYER);
lp.add(canvas, JLayeredPane.PALETTE_LAYER); lp.add(canvas, JLayeredPane.PALETTE_LAYER);
lp.add(dialogBar, JLayeredPane.POPUP_LAYER); lp.add(background, JLayeredPane.DEFAULT_LAYER);
setDefaultCloseOperation(EXIT_ON_CLOSE); setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(true); setUndecorated(true);
@ -231,6 +237,7 @@ public class WindowOfFreeMove extends JFrame {
mapPainter.getActualMap().getPerson().move(); mapPainter.getActualMap().getPerson().move();
camera.moveCamera(); camera.moveCamera();
canvas.repaint(); canvas.repaint();
dialogBar.repaint();
}); });
timer.start(); timer.start();
while (true) { while (true) {