如何更改 JLabel 在 JFrame 中的位置?
How do I Change The Position of a JLabel in a JFrame?
所以我在 Eclipse 中使用 JFrame 制作了一个 Mafia 游戏 - 我想在 JFrame 中设置文本的位置。
每当我使用 setPositionX 和 setPositionY 时,它都不起作用!
有什么建议吗?
Insets insets = panel.getInsets();
Dimension size =test.getPreferredSize();
// Just replace 10 & 0 according to X & Y position you want
test.setBounds(10 + insets.left, 0 + insets.top, size.width, size.height);
您没有使用绝对坐标放置组件。
你研究layout managers的概念。然后你决定哪种类型的经理最支持你的想法。
然后让该经理对所有 UI 元素进行定位。其他的基本上都是浪费时间。
意思:当然,您可以使用绝对值定位组件 "manually"(有关如何操作的说明,请参阅 here)。
但这有一个大问题:您需要花费大量时间来完美调整您的组件。然后你记起来了:"maybe I have to allow my users to resize the window"。然后大部分工作变得毫无用处;你很快就会想到:"when people resize the frame, I want this part to grow/shrink with it; whereas that part should stay put".
长话短说:绝对定位仅适用于固定分辨率、固定 window 大小、固定字体大小、固定所有内容。基本上它会将您固定在某个角落 - 离开那个角落是 hard。
所以请避免这种情况;并学习如何使用一个(或多个)布局管理器为您完成所有这些繁琐的工作。
所以我在 Eclipse 中使用 JFrame 制作了一个 Mafia 游戏 - 我想在 JFrame 中设置文本的位置。
每当我使用 setPositionX 和 setPositionY 时,它都不起作用!
有什么建议吗?
Insets insets = panel.getInsets();
Dimension size =test.getPreferredSize();
// Just replace 10 & 0 according to X & Y position you want
test.setBounds(10 + insets.left, 0 + insets.top, size.width, size.height);
您没有使用绝对坐标放置组件。
你研究layout managers的概念。然后你决定哪种类型的经理最支持你的想法。
然后让该经理对所有 UI 元素进行定位。其他的基本上都是浪费时间。
意思:当然,您可以使用绝对值定位组件 "manually"(有关如何操作的说明,请参阅 here)。
但这有一个大问题:您需要花费大量时间来完美调整您的组件。然后你记起来了:"maybe I have to allow my users to resize the window"。然后大部分工作变得毫无用处;你很快就会想到:"when people resize the frame, I want this part to grow/shrink with it; whereas that part should stay put".
长话短说:绝对定位仅适用于固定分辨率、固定 window 大小、固定字体大小、固定所有内容。基本上它会将您固定在某个角落 - 离开那个角落是 hard。
所以请避免这种情况;并学习如何使用一个(或多个)布局管理器为您完成所有这些繁琐的工作。