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

BorderLayout center命令不会居中

余歌者
2023-03-14
问题内容

我试图将两个JButtons彼此相邻放置在的中心,JFrame当改变大小时,它们不会改变按钮JFrame的大小。

为此,我将两个按钮放在带有a的面板中,FlowLayout然后将其放在带有中心的面板中BorderLayout

但是,以下代码不会在的中心显示所选面板BorderLayout

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class test extends JFrame {

    private JPanel panel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JButton button1 = new JButton("one");
    private JButton button2 = new JButton("two");

    public test() {
        panel1.setLayout(new FlowLayout());
        panel1.add(button1);
        panel1.add(button2);

        panel2.setLayout(new BorderLayout());
        panel2.add(panel1, BorderLayout.CENTER);

        this.add(panel2);
    }

    public static void main(String[] args) {
        test frame = new test();
        frame.setVisible(true);
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

问题答案:

设置GridBagLayoutpanel1

 panel1.setLayout(new GridBagLayout());

编辑:

@trashgod:我必须弄清楚默认约束是如何做到的。

由于存在GridBagLayout.defaultConstraints字段:

此字段包含包含默认值的Gridbag约束实例,因此,如果组件没有与其关联的Gridbag约束,则将为该组件分配defaultConstraints的副本。

在通常的实践中,必须创建GridBagConstraints对象并设置字段以指定对每个对象的 约束

引用本教程:

设置组件约束的首选方法是使用Container.add变量,并向其传递GridBagConstraints对象



 类似资料:
  • 我正在写一个小程序,介绍如何计算网格中给定位置的邻域之和。由于某些原因,程序无法识别正确的值。我想知道这可能是因为我使用了try-catch来限制出界,还是我错过了什么? 我使用的是一个简单的3x3网格,编号为1-9。我在许多其他测试中使用了相同的矩阵,因此假设网格没有问题。即使我在一步一步地调试和检查时得到了11。我不太明白,有人有主意吗? 和中的-1只是将其强制为11(2 4 5),但程序在运

  • 我在支持库的文本输入中包含了一个编辑文本,我发现无法使提示出现在字段的中心。我已经尝试了在其他堆栈溢出讨论中发现的所有常用技巧,正如您从代码示例中看到的那样,但提示仍然顽固地出现在编辑文本的左侧。我该如何解决这个问题? 请不要建议使用paddingLeft或paddingStart来做到这一点——我想要一些能够在不同设备上干净地工作的东西,所以它必须是一个直接的解决方案,而不是一个变通办法。 需要

  • 问题内容: 我用Java编写selenium脚本已有一段时间了。我今天遇到了一个很奇怪的问题。 这是问题所在:我使用webelement.clear()方法清除了文本字段,稍后在执行下一个命令(单击事件)时,先前清除的文本区域现在填充有先前填充的值。 这是代码片段: 问题答案: 面临类似的问题。输入字段被清除,但错误消息未更新。似乎只有在输入和删除字符后,某些输入字段才能正常工作:

  • 我正在尝试编写一个Java代码,它可以ssh到Unix服务器并重置用户密码。所以我尝试实现SO中的一些代码。 如。 通过JavaJSch通过ssh向远程服务器发送命令 从字符串中获取命令(密码)并设置为InputStream到Java(JSCH)中的Unix服务器 使用JSch,我按照此链接获取重置用户密码的正确命令。 当我试着运行这段代码时,它似乎没有重置用户的密码。因此,我尝试直接从Unix的

  • 我正在尝试将三个引导列居中对齐。我不希望列跨越整行。我认为这会使图像看起来太大,空间不够。这就是为什么我放了三列“col-md-3”。我喜欢这个尺寸的栏目。我只想让这些列居中对齐。我想我可以将类名“justify content md center”应用到行中,它可以工作,但不能工作。有人知道如何使用Bootstrap 3将下面的列居中对齐吗?可能吗? 这是我的密码: 在代码笔上查看它。 谢谢你的

  • 我的ADT与教程中看到的任何内容一样正常工作,直到2天前,当我像以前一样创建一个项目时,我也选择了“创建一个空白活动”,我希望它为我和Main制作一个默认的hello world项目.java也是一个xml布局文件,但它不再创建这个默认的hello世界项目。我安装并更新了SDK管理器中的大多数内容。我创建了另一个工作区,我尽我所能,但它不会创建默认的hello world项目。但是当我从命令行创建