首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JLabel太宽

JLabel太宽
EN

Stack Overflow用户
提问于 2016-03-17 01:44:10
回答 1查看 899关注 0票数 0

我编写了以下代码,这是一个简单的窗口,顶部有一个JLabel头。守则如下:

代码语言:javascript
复制
import java.awt.Color;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class Main extends JFrame {

private static final long serialVersionUID = 1L;

public static void main(String[] args) {
    init();
}

public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    int WIDTH = 500;
    int HEIGHT = 500;
    setBackground(Color.LIGHT_GRAY);
    setSize(WIDTH, HEIGHT);
    setTitle("New Window");
    setLocationRelativeTo(null);

    JPanel pane = new JPanel();
    pane.setOpaque(false);
    setContentPane(pane);
    pane.setLayout(null);

    JLabel title = new JLabel("New Window", SwingConstants.CENTER);
    title.setFont(new Font("Neuropol", Font.PLAIN, 22));
    title.setSize(WIDTH, 20);
    title.setBorder(BorderFactory.createLineBorder(Color.black));
    pane.add(title);
}

static void init() {
    Main frame = new Main();
    frame.setVisible(true);
}

}

不过我有个奇怪的问题。正如您所看到的,我将JLabel的宽度设置为与JFrame相同的宽度(因此与JPanel的宽度相同),但由于某种原因,标签超出了框架的右侧。框架的宽度为500,但我必须将JLabel设置为483,这样边框才能在JFrame中。我已经重复了一遍又一遍,但没有发现任何问题。有人看到我的错误了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-17 02:11:40

我将JLabel的宽度设置为与JFrame相同的宽度

但是JFrame宽度包括框架的“装饰”,比如边框。

我必须将JLabel设置为483,这样边框才能在JFrame中。

不,483会使标签对框架太大。帧的边框不是17个像素。我认为边界是4或5个像素,每个取决于LAF。

因此,这也是为什么不应该使用空布局的另一个原因,因为硬编码一个LAF的值可能无法在另一个LAF上工作。

另外,如果用户调整帧的大小会发生什么?现在标签不会结束。使用布局管理器设计动态GUI,以适应用户调整框架大小时的变化。

最简单的解决方案是只使用框架的内容窗格的默认BorderLayout。然后将标签添加到PAGE_START中。

代码语言:javascript
复制
add(title, BorderLayout.PAGE_START);

也没有理由创建内容窗格。这个框架已经有一个JPanel,它使用一个BorderLayout。

有关更多信息和工作示例,请阅读关于布局管理器的Swing教程。下载演示代码并使用它们作为代码的起点。演示代码将向您展示如何更好地构造代码以遵循Swing约定。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36050223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档