gpt4 book ai didi

java - .setBounds 不适用于 JLabel?

转载 作者:行者123 更新时间:2023-12-02 11:18:58 27 4
gpt4 key购买 nike

我在将 .setBounds 应用于 JLabel 时遇到问题。它与我之前定义的 JLabel 一起使用,但完全忽略了我的第二个边界定义。我稍微修改了宽度和高度,看看它是否会影响 JLabel,但事实并非如此。另外,我注意到在反转添加两个 JLabel 时,“greet”标签不再出现。这是我的代码,感谢任何帮助:^)

import java.awt.Color;
import java.awt.Font;

import javax.swing.*;

public class Fashion {
static JFrame f = new JFrame("Game Title");
static Font h1 = new Font("courier", Font.PLAIN, 30);
static Font h2 = new Font("courier", Font.PLAIN, 17);

public static void main(String[] args) {
f.setSize(1400, 900);
f.setResizable(false);
f.getContentPane().setBackground(Color.WHITE);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


JLabel title = new JLabel("Welcome!");
title.setFont(h1);

JLabel greet = new JLabel("Lets get started.");
greet.setFont(h2);

title.setBounds(225,1,1000,100);
greet.setBounds(350,200,1,1);

f.add(title);
f.add(greet);


f.setVisible(true);

}

}

(忽略非常难看的边界/位置,它们非常具体,但这是我的教授想要的:/)

最佳答案

I'm having trouble applying .setBounds to a JLabel. It works with the previous JLabel I defined, but completely disregards my second definition of bounds.

您的两个 setBounds(...) 语句都将被忽略。

Swing 使用布局管理器来设置组件的大小和位置。即使您尝试设置边界,布局管理器也会根据布局管理器的规则覆盖大小/位置值。

Also, I noticed when reversing the addition of my two JLabels, the "greet" label no longer appeared

这是因为您要将这两个组件添加到 BorderLayoutCENTER(这是框架内容 Pane 的默认布局管理器)。只能显示一个组件,因此只有最后添加的组件可见。

解决您的问题的方法是学习正确使用布局管理器。阅读 Swing 教程中关于 Layout Manager 的部分了解更多信息和示例以帮助您入门。

默认布局管理器是 FlowLayout

关于java - .setBounds 不适用于 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069756/

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