如何将一个框架分成两部分

2024-04-03

这是俄罗斯方块。玻璃(蓝色)位于左侧,控件(红色面板)位于右侧。换句话说,现在我只想将框架分为两部分:左(较宽)部分是蓝色,右部分是红色。而已。但我似乎没能做到这一点。

所以,我的逻辑是:让框架有FlowLayout。然后我添加两个面板,这意味着它们应该排成一行。

我准备了这个:

public class GlassView extends JFrame{
    public GlassView(){
        this.setSize(600, 750);
        this.setVisible(true);
        this.setLayout(new FlowLayout());
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


        JPanel glass = new JPanel();
        glass.setLayout(new BoxLayout(glass, BoxLayout.Y_AXIS));
        glass.setSize(450, 750);
        glass.setBackground(Color.BLUE);
        glass.setVisible(true);
        this.add(glass);

        JPanel controls = new JPanel();
        controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
        controls.setSize(150, 750);
        controls.setBackground(Color.RED);
        controls.setVisible(true);
        this.add(controls);
    }
}

但屏幕上只能看到一个灰框。你能帮我理解为什么吗?


正如 Amir 所说,您想为此使用 JSplitPane。我已将其添加到您的代码中。看看这个。

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    GlassView view = new GlassView();
}

private static class GlassView extends JFrame {

    private int width = 600;
    private int height = 750;

    public GlassView() {
        this.setSize(width, height);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel glass = new JPanel();
        glass.setSize(450, 750);
        glass.setBackground(Color.BLUE);
        glass.setVisible(true);

        JPanel controls = new JPanel();
        controls.setSize(150, 750);
        controls.setBackground(Color.RED);
        controls.setVisible(true);

        JSplitPane splitPane = new JSplitPane();
        splitPane.setSize(width, height);
        splitPane.setDividerSize(0);
        splitPane.setDividerLocation(150);
        splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setLeftComponent(controls);
        splitPane.setRightComponent(glass);

        this.add(splitPane);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将一个框架分成两部分 的相关文章

随机推荐

  • 围绕位图调整画布大小?

    如下图所示 我将在以下示例中使用它 目前尺寸未改变96 x 71 假设我想调整画布大小115 x 80 结果图像应该是 最后 如果我将其调整为比原始画布更小的尺寸 例如45 x 45输出将如下所示 这是我到目前为止所尝试过的 procedu
  • Polars:如何添加带有数字的列?

    in pandas df new a where a是一个数字系列或只是一个数字 而在polars我们可以添加一个char df with column pl all pl lit str alias new 但如何添加数字系列或数字作为新
  • 是否可以让 Google Closure 编译器*不*内联某些函数?

    闭包编译器正在内联一个函数 但如果该函数未内联 则代码大小会更小 我只关心代码大小 这是为了JS1k http js1k com 2010 xmas 我可以告诉编译器我不想内联该函数吗 Edit 为了更好地解释一下 这是我的功能 funct
  • 删除子项时,JPA 关系不会更新

    假设有以下场景 Entity public class A OneToMany mappedBy a cascade CascadeType ALL private List b bList Entity public class B Ma
  • create-react-app typescript 将不会运行 npm start

    我在尝试着create react app使用 typescript 但 JSX 和 TS 似乎有问题 我读了一些可能的解决方案 但对我来说并不奏效 I have npm 版本 16 14 7 节点 版本14 8 0 I used npx
  • 当 javascript 创建 html 时,如何通过 onclick 事件传递变量?

    我的 javascript 创建了一行 html 该 html 有一个 onclick 事件调用openSingle 我需要将一个变量传递给该函数 onclick openSingle findID 当我在运行时检查开发面板时 我得到 on
  • 是否可以在JavaScript中捕获滚动条上的鼠标事件

    我有一个 HTML 元素overflow scroll 当我点击该元素时 会触发向该元素注册的点击事件监听器 但是not当我单击元素的滚动条时 是否可以捕获 HTML 元素滚动条上发生的鼠标事件 我想这样做的原因是让视觉弹出元素在发生单击事
  • 用于集成测试的不同日志文件

    我在用SL4j http www slf4j org and Logback http logback qos ch 用于 Tomcat 中托管的 Web 应用程序 我使用 Spring 和 Maven 无配置文件 集成测试是使用 Sure
  • 获取图像高度和宽度作为整数值?

    我尝试过使用 PHP 函数获取图像大小 http php net manual en function getimagesize php 但我无法将图像宽度和高度提取为整数值 我怎样才能实现这个目标 尝试这样 list width heig
  • React:使用不同的键映射多维数组

    如何使用不同的键映射多维数组 这是一个类似的示例数组 我的原始数组是从ajax和PHP mysql查询获得的 这就是我需要这样做的原因 var products id 1 name John phones sony brand sony m
  • 如何配置 Visual Studio 代码以使用 Mac 的标准选项卡切换快捷方式?

    大多数具有选项卡式界面的 OS X 应用程序允许使用Cmd Shift and Cmd Shift 切换选项卡 VSCode 不遵循这一点 有没有办法将其配置为使用这些快捷方式快速切换到下一个 向右 和上一个 向左 选项卡 这种行为不同于C
  • 如何确定 git 历史记录是否是线性的?

    给定两个 git 提交 我如何确定 最好使用管道命令 它们之间的历史记录是否是线性的 换句话说 我想知道我是否有这个 A B C D E F G 而不是这个 C A B E F G D git log min parents 2只会显示至少
  • Scala - 如何在 for 理解块中使用 foreach 循环?

    我有一个简单的代码 override def createContributorsList url String params String F List Contributor getContributorsFromClient url
  • WPF:截屏的方法

    希望修改以下内容以从所有显示器上截取屏幕截图 我尝试过调整它 但我的图像是空白的 写入test png是为了测试 这byte 将被发送到接收应用程序 public byte Take int screenWidth Convert ToIn
  • FirebaseInstanceIdService getToken 返回 null

    我尝试将 FCM 通知添加到我的应用程序中 但出于某种原因 FirebaseInstanceId getInstance getToken 返回 null 由于我没有得到任何堆栈跟踪 我最好的猜测是 FirebaseInstanceIdSe
  • 从 C++ 代码和命令行生成相同的 Key 和 IV

    我的命令行工具 openssl 有问题 或者我的 C 代码有问题 我不知道哪个是不正确的 但是当我使用这两种方法从 passphase 和盐生成密钥和 IV 时 我没有得到相同的密钥 IV 值 您可以看到代码或命令行是否存在任何拼写错误或问
  • 在 foreach 循环中,使用 & 符号或基于键重新分配哪个更好?

    考虑以下 PHP 代码 Method 1 array array 1 2 3 4 5 foreach array as i gt number number array i number print r array Method 2 arr
  • 将 JMeter 报告转换为 JUnit 报告

    如何将 JMeter 报告转换为 JUnit 报告 有些工具 例如 VSTS 知道如何集成 JUnit 报告 但不知道如何集成 JMeter 报告 尽管它们可以运行 JMeter 我创建了一个 XSLT 将 XML JMeter 报告转换为
  • PyMongo Aggregate 如何获取executionStats

    我正在尝试获取特定 mongo 聚合查询的执行统计信息 我运行 db command 但没有给出 执行状态 这就是我正在努力做的事情 如何使用 db command 获取 Python Mongodb Aggregate 解释 https
  • 如何将一个框架分成两部分

    这是俄罗斯方块 玻璃 蓝色 位于左侧 控件 红色面板 位于右侧 换句话说 现在我只想将框架分为两部分 左 较宽 部分是蓝色 右部分是红色 而已 但我似乎没能做到这一点 所以 我的逻辑是 让框架有FlowLayout 然后我添加两个面板 这意