首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java swing方法setLayout null不起作用

Java swing方法setLayout null不起作用
EN

Stack Overflow用户
提问于 2014-12-14 04:34:15
回答 2查看 595关注 0票数 0
代码语言:javascript
复制
import javax.swing.*;
import java.awt.*;

class MenuPanel extends JPanel {
    JButton setTextColor;
    JSlider setMobNumber;
    MenuPanel() {
        setLayout(null);
        setBackground(Color.LIGHT_GRAY);

        setTextColor = new JButton("Change Text Color");
        setMobNumber = new JSlider(1, 10);

        setTextColor.setBounds(10, 40, 20, 10);
        setMobNumber.setBounds(10, 80, 20, 10);

        add(setTextColor);
        add(setMobNumber);

        setTextColor.setFocusable(false);
        setMobNumber.setFocusable(false);
    }
}

class GameBoard extends JFrame {
    MenuPanel menuPanel = null;
    GameBoard() {
        setTitle("MyGame");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        menuPanel = new MenuPanel();
        add(menuPanel, BorderLayout.WEST);

        setSize(600, 500);
        setVisible(true);
    }
}

public class MyGame {
    public static void main(String args[]) {
        new GameBoard();
    }
}

这是我的Java代码。我想在主框架上制作菜单面板。所以我做了上面的代码,并在主框架代码上附加了"add(menuPanel)“。但是我的菜单面板没有显示出来。我该怎么办呢。我对此深思熟虑。但我不知道我做错了什么。

EN

回答 2

Stack Overflow用户

发布于 2014-12-14 05:36:58

避免使用null布局,像素完美布局在现代ui设计中是一种错觉。有太多的因素会影响组件的单个大小,但没有一个是您可以控制的。Swing被设计为以布局管理器为核心进行工作,丢弃这些将导致无休止的问题和问题,您将花费越来越多的时间来尝试纠正这些问题

BorderLayout依赖于您的MenuPanel首选大小来判断它可能需要的大小,此信息通常由布局管理器生成,但由于您已将布局管理器设置为null,因此它将使用默认大小0x0

简单的答案是使用适当的布局管理器,并允许底层API决定如何最好地布局组件,这将考虑这些组件在不同系统上可能需要如何调整大小的差异……

有关更多详细信息,请查看Laying Out Components Within a Container

票数 1
EN

Stack Overflow用户

发布于 2014-12-14 04:54:56

我刚刚测试了你的代码,它可以工作,但是框架没有调整到面板的大小,所以看起来面板还没有被添加。但是,调整框架的大小将显示面板。尝试使用setPreferredSize(new Dimension(width, height))设置面板的首选大小,然后在添加MenuPanel后在框架上调用pack()

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

https://stackoverflow.com/questions/27463348

复制
相关文章

相似问题

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