编辑:该死,我的英语有点不对劲。我的意思是问如何在图片“内部”而不是在图片上方(上方)添加文本,并且文本位于图片的中心。 无论如何,谢谢您之前的帮助:)。
最佳答案
一种方法是使用 OverlayLayout
。为了使文本在两个轴上都位于图像的中心,对齐值为 0.5
应该同时用于 X 和 Y JLabel
组件如下所示。
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/