Как отобразить JLabel поверх другого JLabel с указанной координатой? - PullRequest
0 голосов
/ 22 мая 2019

Я работаю над графическим интерфейсом для проекта Tic Tac Toe, в котором я хочу получить изображение (ход игрока), которое будет отображаться при нажатии на соответствующую область. Тем не менее, я не могу понять, как отобразить JLabel (движение) поверх другого JLabel (фон).

Я искал и пытался использовать многослойные панели, но он просто не показывает весь кадр при запуске. Я новичок в GUI, поэтому я не совсем уверен, правильно ли я его реализовал.

layer = new JLayeredPane(); //set up the board as background String path = "sampleUrl"; URL url = new URL(path); BufferedImage image = ImageIO.read(url); bg4 = new JLabel(new ImageIcon(image)); layer.add(bg4, new Integer(-1)); frame.add(layer); frame.pack(); frame.addMouseListener(new MouseListener4()); String xPath = "sampleUrl"; URL xUrl = new URL(xPath); BufferedImage x = ImageIO.read(xUrl); icon = new JLabel(new ImageIcon(x)); layer.add(icon);

Это просто показывает окно с минимальной шириной и высотой, без отображения фона. Что-то не так с этим кодом или какими-то другими способами я могу поставить JLabel поверх другого JLabel?

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я настоятельно рекомендую вам прочитать о javafx, если вы новичок в GUI. Вы можете объединять узлы любым способом. Вы можете накладывать метки друг на друга с помощью стека, а также отображать их сверху и снизу друг от друга с помощью сетки.без труда.больше информации о: https://docs.oracle.com/javafx/2/

0 голосов
/ 22 мая 2019

Вы можете добавить один объект метки в другой, так как JLabel является контейнером.Попробуйте что-то вроде этого.

JLabel parentLabel = new JLabel("Parent");
JLabel childLabel = new JLabel("Child");
parentLabel.add(childLabel );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...