Я думаю, что все правильно написано в коде, мне просто нужно знать, как сортировать разные слои.Как я могу переместить JLabel перед ImageIcon?
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.KeyStroke;
class FullSceenToggleAction extends AbstractAction {
private JFrame frame;
private GraphicsDevice fullscreenDevice;
public FullSceenToggleAction(JFrame frame) {
this(frame, GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
}
public FullSceenToggleAction(JFrame frame, GraphicsDevice fullscreenDevice) {
this.frame = frame;
this.fullscreenDevice = fullscreenDevice;
}
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
if (frame.isUndecorated()) {
fullscreenDevice.setFullScreenWindow(null);
frame.setUndecorated(false);
} else {
frame.setUndecorated(true);
fullscreenDevice.setFullScreenWindow(frame);
}
frame.setVisible(true);
frame.repaint();
}
}
public class Main {
public static final void addKeyBinding(JComponent c, String key, final Action action) {
c.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(key), key);
c.getActionMap().put(key, action);
c.setFocusable(true);
}
public static void main(String[] args) {
final JFrame frame = new JFrame("Fullscreen Toggle Test");
Container contentPane = frame.getContentPane();
contentPane.add(new JLabel("Hey"), BorderLayout.CENTER);
frame.add(new JLabel(new ImageIcon("C:/Users/SamBr/Pictures/DesktopBackgrounds/image.png")));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(960, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setTitle("Virtual World");
addKeyBinding(frame.getRootPane(), "F11", new FullSceenToggleAction(frame));
}
}
Когда я запускаю код, который я вижу изображение, но нет текста «Эй» перед ним или где-нибудь на экране я не понимаю, почему это не показано, или как я могу сделать его видимым перед изображение.
в части дизайна, щелкните правой кнопкой мыши компонент, и должна быть возможность получить компонент спереди или сзади. –
Я уже говорил вам о проблеме, но вы никогда не комментировали меня, как если бы вы проигнорировали ее. Если вы не понимаете комментарий, пожалуйста, не просто игнорируйте его, просьба уточнить. –
@Sam Если вы используете макет, вы не можете разместить свои компоненты в нужном месте (и большинство макетов не допускают частичного перекрытия компонентов). Позиции компонентов будут определяться макетом. Если вам интересно, чтобы 2 изображения перекрывались и перемещали их куда угодно, вы можете рассмотреть обычную картину. Вы можете посмотреть здесь: [Изображение, которое перекрывается] (http: // stackoverflow.ком/вопросы/35711891/как к Create-A-фон-и-передний план-образ-который-перекрывающийся/35711894 # 35711894). – user3437460