当前位置: 首页 > 面试题库 >

JPanel会填充所有JFrame空间

葛承教
2023-03-14
问题内容

我已经编写了这段代码来显示面板上的一些颜色:

import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Palette {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Panel");

        palette.add(new Color(255, 0, 0));
        palette.add(new Color(0, 255, 0));
        palette.add(new Color(0, 0, 255));

        int width = 100;
        int height = 250;
        int x = 0;
        for (Color color : palette) {
            JPanel panel = new JPanel();

            panel.setSize(width, height);
            panel.setLocation(x, 750);
            panel.setBackground(new java.awt.Color(color.getColor()));

            frame.add(panel);

            x+=width;
        }
        frame.pack();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1000, 1000);
        frame.setVisible(true);
    }

}

正确位置和正确尺寸的两个第一面板。但是最后一个将所有帧填充为蓝色。怎么了?


问题答案:

您必须使用适当的布局管理器。默认情况下,JFrame有一个BorderLayout

查看本教程的LayoutManagers:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html



 类似资料:
  • 嗨,我正在编写一个简单的物理引擎,以便更好地理解对象碰撞和Java图形,到目前为止,我已经成功地编写了代码,将JPanel添加到JFrame中,并允许它们显示一些正确的大小,但当我查看实际程序时,JPanel似乎是正确的大小,但它不是从窗口的上角开始的,而是从框架的左上角开始的。我似乎有这个问题很多,我想要的东西在(0,0)和开始在框架的上角,而不是面板。下面是我的代码: 我有一个引擎类,它扩展了

  • 问题内容: 我的Java swing应用程序有一个格式问题。它应该很简单,但是我很难找到任何帮助(每个主题似乎都与 删除 JPanel中的默认填充有关)。我的各个JPanels中的文本都拥抱侧面和顶部,触及彩色边框:如何添加填充?谢谢。 问题答案: 在周围设置一个。 例:

  • 你好,我实际上正在尝试从jPanel切换到我的JFrame中的另一个jPanel。我已经更改了我的代码,下面是我遵循以下内容的样子:

  • 使用下面的代码,我将创建一个包含JTextFields和JLabels的JPanel,并将该面板添加到另一个JPanel中。如何调整InfoPanel上JTextFields之间的间距?

  • 我对荡秋千很陌生。我有一个基于外部输入动态生成UI的应用程序。在面板的顶部,有一个带有一些标题文本的JLabel,然后是一个按钮(告诉应用程序重新加载动态生成的内容),然后在下面是一个JScrollPane,其中包含所有动态生成的内容。我希望标签和按钮只占用所需的垂直空间,然后滚动窗格来填充所有剩余的可用空间。 我正在使用GridBagLayout,并在添加滚动窗格之前设置gbc.fill=BOT