【问题标题】:Drawing shapes over a background image JFrame在背景图像 JFrame 上绘制形状
【发布时间】:2013-11-28 08:13:11
【问题描述】:

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

【问题讨论】:

    标签: java image swing jframe


    【解决方案1】:

    首先,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布局管理器

    【讨论】:

    • 使用OverlayLayout 的示例见here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2018-07-23
    • 2013-04-10
    相关资源
    最近更新 更多