gpt4 book ai didi

java - 同时使用 JFrame 和 JLabel

转载 作者:行者123 更新时间:2023-11-30 03:17:16 25 4
gpt4 key购买 nike

我正在尝试在 JFrame 中添加图片和文本。

当我添加图片和文本时,仅显示图片。我的猜测是文字隐藏在它后面。当我注释掉 try/catch block 时,文本将按其应有的方式显示在中心。谁能帮我让文字出现在图片前面吗?

我自己把图片的路径去掉了,没有错

public class Vindu {

public Vindu(){
JFrame F = new JFrame("name");
JLabel label = new JLabel ("hello world", JLabel.CENTER);
label.setAlignmentX(0);
label.setAlignmentY(0);
F.add(label);

try{
F.setContentPane(new JLabel (new ImageIcon
(ImageIO.readnewfile))));

}catch (IOException e){
System.out.print("wrong place");
}

F.setResizable(false);
F.setSize(600, 400);
F.setVisible(true);

}
}

最佳答案

首先,您向框架添加了一个组件 ( label )。到目前为止,一切都很好。

F.add(label);

事实上,您已将其添加到框架的内容 Pane 中,因为框架仅包含其内容 Pane 。请参阅documentation for JFrame :

As a convenience, the add, remove, and setLayout methods of this class are overridden, so that they delegate calls to the corresponding methods of the ContentPane. For example, you can add a child component to a frame as follows:

  frame.add(child);

And the child will be added to the contentPane.

然后您用新组件替换了框架的内容 Pane :

F.setContentPane(...);

这就是您丢失标签的原因。相反,将第二个标签(带有图像)添加到农场。

F.add(new JLabel(new ImageIcon(...)));

您还想了解layout managers在某些时候控制布局。

关于java - 同时使用 JFrame 和 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com