在背景图像JFrame上绘制形状

时间:2013-11-27 23:53:58

标签: java image swing jframe

我正在尝试在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课程在没有图像的情况下工作正常,所以我知道这至少有效。有什么建议吗?

1 个答案:

答案 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布局管理器