我正在尝试在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);
内容窗格包含图像,holiday
是我的形状被绘制的位置。是不是能够在内容窗格上绘图?或者在其他地方还有其他问题?我的holiday
课程在没有图像的情况下工作正常,所以我知道这至少有效。有什么建议吗?
答案 0 :(得分:3)
首先,如果您希望能够绘制其他组件,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布局管理器