我正在尝试在 JFrame 中的背景图像上绘制形状。我可以获得所需的图像作为背景,但无法在该图像之上绘制形状。到目前为止我所尝试的只是重新排列组件的调用顺序,但这似乎没有效果。这就是我所做的:
JFrame frame = new JFrame ();
frame.setTitle("Happy Holidays!");
frame.setSize(813,645);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setContentPane(new JLabel(new ImageIcon("C:\\Users\\Brian\\Desktop\\Eclipse Projects\\BrianBolnickFinal\\bin\\christmas.jpeg")));
frame.add(holiday);
内容 Pane 包含图像,holiday
是绘制我的形状的位置。是因为无法在内容 Pane 上绘图吗?还是其他地方出了什么问题?我的 holiday
类(class)在没有图像的情况下也能正常工作,所以我知道这至少是有效的。有什么建议吗?
最佳答案
首先,如果您希望能够覆盖其他组件,holiday
应该是透明的
holiday.setOpaque(false);
接下来,您有两个选择。
首先,您可以向标签添加假期...
JLabel label = new JLabel(new ImageIcon("C:\\Users\\Brian\\Desktop\\Eclipse Projects\\BrianBolnickFinal\\bin\\christmas.jpeg")));
label.setLayout(new BorderLayout());
label.add(holiday);
或者您可以使用OverlayLayout布局管理器
关于java - 在背景图像 JFrame 上绘制形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20255374/