java - 有没有办法在 JFrame 中的图片内添加文本?

标签 java image swing text jframe

编辑:该死,我的英语有点不对劲。我的意思是问如何在图片“内部”而不是在图片上方(上方)添加文本,并且文本位于图片的中心。 无论如何,谢谢您之前的帮助:)。

最佳答案

一种方法是使用 OverlayLayout 。为了使文本在两个轴上都位于图像的中心,对齐值为 0.5应该同时用于 X 和 Y JLabel组件如下所示。

enter image description here

public class OverlayLabelApp {
    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame("Overlay App");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                JPanel panel = new JPanel();

                LayoutManager overlay = new OverlayLayout(panel);
                panel.setLayout(overlay);

                JLabel label1 = new JLabel("Centered Text");
                label1.setForeground(Color.GREEN);
                label1.setFont(new Font("SansSerif", Font.BOLD, 16));
                label1.setAlignmentX(0.5f);
                label1.setAlignmentY(0.5f);
                panel.add(label1);

                JLabel label2 = 
                  new JLabel(new ImageIcon(OverlayLabelApp.class.getResource("/images/sunset.png")));                   label2.setAlignmentX(0.5f);
                label2.setAlignmentY(0.5f);
                panel.add(label2);

                frame.add(panel);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

关于java - 有没有办法在 JFrame 中的图片内添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18330396/

相关文章:

java - ConfigChanges 期间 ActionBar 的导航模式变化

java - 如果更改 Java Exception 类扩展的基类,是否需要更新 serialVersionUID 值?

java - 计算从 167.37 美元中赚取(钱)零钱的不同方式?

android - 在android中缓存视频列表

ios - 如何在 SwiftUI 中居中裁剪图像

java - 向 JButton 添加第二个边框

javascript - 如何在脚本中引用引号内的图像

java - 当键入一个 Jtextfield 时,从数据库中将数据提取到 Jtextfield 中

java - 在 IF 语句中比较 JPasswordfield 和 JTextField 继续执行 else 语句

java - 根据 CardLayout 中另一张卡片的输入更新一张卡片的(JPanel)内容