当前位置: 首页 > 知识库问答 >
问题:

在JPanel上填充JTextFields[重复]

阎麒
2023-03-14

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

public DrawPanelMain() {
    JPanel btnPanel = new JPanel(); //Creates a new Panel for the buttons
    JPanel infoPanel = new JPanel();
    JPanel fields = new JPanel();

    //Text boxes for infoPanel
    JTextField textField1 = new JTextField(20);
    JTextField textField2 = new JTextField(20);
    JTextField textField3 = new JTextField(20);
    JTextField textField4 = new JTextField(20);
    JTextField textField5 = new JTextField(20);
    JTextField textField6 = new JTextField(20);

    //JLabels for infoPanel
    JLabel jLabel1 = new JLabel("Serial Number: ");
    JLabel jLabel2 = new JLabel("Information: ");
    JLabel jLabel3 = new JLabel("Information: ");
    JLabel jLabel4 = new JLabel("Information: ");
    JLabel jLabel5 = new JLabel("Information: ");
    JLabel jLabel6 = new JLabel("Information: ");

    //These are the buttons that will  be added to the btnPanel
    btnPanel.add(new JButton(new AddSwitchAction("Add Switch Panel")));
    btnPanel.add(new JButton(new PushConfigAction("Push Config")));
    btnPanel.add(new JButton(new ActivateAllAction("Activate All")));
    btnPanel.add(new JButton(new DeactivateAllAction("Deactivate All")));

    //Fields that will be added to infoPanel
    fields.add(jLabel1);
    fields.add(textField1);
    fields.add(jLabel2);
    fields.add(textField2);
    fields.add(jLabel3);
    fields.add(textField3);
    fields.add(jLabel4);
    fields.add(textField4);
    fields.add(jLabel5);
    fields.add(textField5);
    fields.add(jLabel6);
    fields.add(textField6);

    //Sets border padding for the infoPanel
    fields.setBorder(new EmptyBorder(20, 20, 0, 20));

    //Draws border for the infoPanel
    infoPanel.setBorder(BorderFactory.createRaisedBevelBorder());

    //Sets layout for the fields panel
    fields.setLayout(new GridLayout(6, 1));

    //Add fields to infoPanel
    infoPanel.add(fields);

    //Add panels to tabbedPane
    setLayout(new BorderLayout());
    add(tabbedPane, BorderLayout.CENTER);
    add(btnPanel, BorderLayout.PAGE_END);
    add(infoPanel, BorderLayout.EAST);

}

共有1个答案

公瑞
2023-03-14

创建复合边框

field.setBorder(BorderFactory.createCompoundBorder(
        field.getBorder(), 
        BorderFactory.createEmptyBorder(int top, int left, int bottom, int right)));

或者放一些插图

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

  • 问题内容: 我已经编写了这段代码来显示面板上的一些颜色: 正确位置和正确尺寸的两个第一面板。但是最后一个将所有帧填充为蓝色。怎么了? 问题答案: 您必须使用适当的布局管理器。默认情况下,JFrame有一个。 查看本教程的LayoutManagers: http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

  • 我有两个收藏,一个是用户,另一个是猫。我想要猫的数据下我的用户集合。但我没有得到。 user.js

  • 在Sketch中,每个图层最多可以有4个填充,你可以轻松地将一个半透明的渐变叠加在一个单色填充上面。具体做法是,点击位于第一个颜色填充后面的+按钮来添加第二个填充。你可以来回拖拽它们以重新排列顺序,或者将其拖拽到面板之外来删除它。 想要改变单个填充的颜色属性,点击相应的颜色填充按钮,然后可以修改颜色,也可以切换到渐变填充或图案填充。你可以通过点击每一个填充上面的复选框来禁用单个填充。 为一个图层添

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