gpt4 book ai didi

java - 我可以更改代码中放在 JLabel 上的 ImageIcon 的位置吗?

转载 作者:行者123 更新时间:2023-12-01 16:49:19 25 4
gpt4 key购买 nike

我尝试使用“label.setBounds(100,100,250,250)”和“label.setLocation(100,100)”,但图像没有从 JLabel 的顶部和中心移动。

import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Machine extends JPanel
{
public Machine()
{
ImageIcon imageIcon = new ImageIcon("res/robot.png");
JLabel label = new JLabel(imageIcon);
add(label);
}

public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.add(new Machine());
frame.setVisible(true);
frame.setSize(new Dimension(1080, 720));
}
}

最佳答案

你想做什么?

JPanel 的默认布局是居中对齐的 FlowLayout,并且标签以其首选大小显示。所以标签显示在中心。

您有几个选择:

  1. 将 FlowLayout 的对齐方式更改为左对齐或右对齐

  2. 不要将标签添加到面板中。只需将其直接添加到使用 BorderLayout 的框架即可。

然后你可以这样做:

 label.setHorizontalAlignment(JLabel.LEFT);
label.setVerticalAlignment(JLabel.CENTER);

编辑:

was just trying to get the image to be in the middle of the frame

然后在提问时发布您的实际需求。我们不知道“我可以更改位置吗”对您意味着什么。

因此,您可以使用 BorderLayout 并调整水平/垂直对齐方式,如已经演示的那样。

或者,您可以将框架的布局管理器设置为 GridBagLayout,然后将标签直接添加到框架并使用:

frame.add(label, new GridBagConstraints());

现在,标签将随着框架大小的调整而动态移动。

关于java - 我可以更改代码中放在 JLabel 上的 ImageIcon 的位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43747149/

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