繁体   English   中英

Java Swing - GridBagConstraints 插图颜色

[英]Java Swing - GridBagConstraints insets color

我在使用 GridBagConstraints 时遇到了一些麻烦,特别是在使用 insets 属性时。

我有两个组件,我想要主题之间的一些自定义边距。 现在,我所做的是以这种方式使用 constraints.insets:

polinomioConstraints.insets = new Insets(5, 0, 15 ,0);

checkboxesPanel.add(infoAggiunte, polinomioConstraints);
checkBoxesPanel.add(anotherString, constraintWithoutInsets);

问题是由于某种原因,一个白色块出现在插图区域,所以在两个组件之间,我发现无法将白色更改为实际面板的背景

这是我刚刚为别人做的 GUI。 我添加了黄色背景。

例子

我在 Swing 组件之间没有看到白色。

这是完整的可运行代码。

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class MainRegistrationPage {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new MainRegistrationPage();
            }
        });
    }

    private JTextField firstname;
    private JTextField lastname;
    private JTextField email;
    private JPasswordField password;

    private JFrame frame;

    public MainRegistrationPage() {
        // create user interface
        frame = new JFrame("Registration Page");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.add(createRegistrationPanel(), BorderLayout.CENTER);

        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    private JPanel createRegistrationPanel() {
        JPanel mainPanel = new JPanel(new GridBagLayout());
        mainPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
        mainPanel.setBackground(Color.YELLOW);
        Font font = new Font("Georgia", Font.PLAIN, 14);

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.anchor = GridBagConstraints.LINE_START;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.gridwidth = 1;
        gbc.insets = new Insets(5, 5, 5, 5);

        gbc.gridx = 0;
        gbc.gridy = 0;
        JLabel label = new JLabel("First Name:");
        label.setFont(font);
        mainPanel.add(label, gbc);

        gbc.gridx++;
        firstname = new JTextField(30);
        firstname.setFont(font);
        mainPanel.add(firstname, gbc);

        gbc.gridx = 0;
        gbc.gridy++;
        label = new JLabel("Last Name:");
        label.setFont(font);
        mainPanel.add(label, gbc);

        gbc.gridx++;
        lastname = new JTextField(30);
        lastname.setFont(font);
        mainPanel.add(lastname, gbc);

        gbc.gridx = 0;
        gbc.gridy++;
        label = new JLabel("Email:");
        label.setFont(font);
        mainPanel.add(label, gbc);

        gbc.gridx++;
        email = new JTextField(30);
        email.setFont(font);
        mainPanel.add(email, gbc);

        gbc.gridx = 0;
        gbc.gridy++;
        label = new JLabel("Password:");
        label.setFont(font);
        mainPanel.add(label, gbc);

        gbc.gridx++;
        password = new JPasswordField(30);
        password.setFont(font);
        mainPanel.add(password, gbc);

        gbc.gridwidth = 2;
        gbc.gridx = 0;
        gbc.gridy++;
        JButton submit = new JButton("Submit");
        submit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });
        mainPanel.add(submit, gbc);

        return mainPanel;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM