The following code is available:
package com.company; import javax.swing.*; import java.awt.*; class MyFrame extends JFrame { private static JLabel portText = new JLabel("Port:"); public static String getPortValue() { return port.getText(); } public static String getBrokerAddressValue() { return brokerAddress.getText(); } public static String getTopicValue() { return topic.getText(); } public static String getMessageValue() { return message.getText(); } public static String getUsernameValue() { return username.getText(); } private static JLabel brokerAddressText = new JLabel("Broker ip address:"); private static JLabel topicText = new JLabel("Topic"); private static JLabel messageText = new JLabel("Message:"); private static JLabel usernameText = new JLabel("Username:"); private static JTextField port = new JTextField(4); private static JTextField brokerAddress = new JTextField(10); private static JTextField topic = new JTextField(10); private static JTextField message = new JTextField(20); private static JTextField username = new JTextField(10); private static JButton connect = new JButton("Connect"); private static JButton disconnect = new JButton("Disconnect"); private static JButton subscribe = new JButton("Subscribe"); private static JButton unsubscribe = new JButton("Unsubscribe"); private static JButton publish = new JButton("Publish"); MyFrame(){ super("MQTT client"); JPanel jPanel = new JPanel(); getContentPane().add(jPanel); jPanel.setLayout(new GridBagLayout()); GridBagConstraints constraints1 = new GridBagConstraints(); constraints1.weightx = 0; constraints1.weighty = 0; constraints1.gridx = 0; constraints1.gridy = 0; constraints1.gridheight = 1; constraints1.gridwidth = 1; constraints1.insets.right = 10; constraints1.insets.bottom = 10; jPanel.add(portText, constraints1); GridBagConstraints constraints2 = new GridBagConstraints(); constraints2.weightx = 0; constraints2.weighty = 0; constraints2.gridx = 0; constraints2.gridy = 1; constraints2.gridheight = 1; constraints2.gridwidth = 1; constraints2.insets.right = 10; constraints2.insets.bottom = 10; jPanel.add(port, constraints2); GridBagConstraints constraints3 = new GridBagConstraints(); constraints3.weightx = 0; constraints3.weighty = 0; constraints3.gridx = 1; constraints3.gridy = 0; constraints3.gridheight = 1; constraints3.gridwidth = 1; constraints3.insets.right = 10; constraints3.insets.bottom = 10; jPanel.add(brokerAddressText, constraints3); GridBagConstraints constraints4 = new GridBagConstraints(); constraints4.weightx = 0; constraints4.weighty = 0; constraints4.gridx = 1; constraints4.gridy = 1; constraints4.gridheight = 1; constraints4.gridwidth = 1; constraints4.insets.right = 10; constraints4.insets.bottom = 10; jPanel.add(brokerAddress, constraints4); GridBagConstraints constraints5 = new GridBagConstraints(); constraints5.weightx = 0; constraints5.weighty = 0; constraints5.gridx = 2; constraints5.gridy = 0; constraints5.gridheight = 1; constraints5.gridwidth = 1; constraints5.insets.right = 10; constraints5.insets.bottom = 10; jPanel.add(connect, constraints5); GridBagConstraints constraints6 = new GridBagConstraints(); constraints6.weightx = 0; constraints6.weighty = 0; constraints6.gridx = 2; constraints6.gridy = 1; constraints6.gridheight = 1; constraints6.gridwidth = 1; constraints6.insets.right = 10; constraints6.insets.bottom = 10; jPanel.add(disconnect, constraints6); GridBagConstraints constraints7 = new GridBagConstraints(); constraints7.weightx = 0; constraints7.weighty = 0; constraints7.gridx = 0; constraints7.gridy = 3; constraints7.gridheight = 1; constraints7.gridwidth = 1; constraints7.insets.right = 10; constraints7.insets.bottom = 10; jPanel.add(topicText, constraints7); GridBagConstraints constraints8 = new GridBagConstraints(); constraints8.weightx = 0; constraints8.weighty = 0; constraints8.gridx = 0; constraints8.gridy = 4; constraints8.gridheight = 1; constraints8.gridwidth = 1; constraints8.insets.right = 10; constraints8.insets.bottom = 10; jPanel.add(topic, constraints8); GridBagConstraints constraints9 = new GridBagConstraints(); constraints9.weightx = 0; constraints9.weighty = 0; constraints9.gridx = 1; constraints9.gridy = 3; constraints9.gridheight = 1; constraints9.gridwidth = 1; constraints9.insets.right = 10; constraints9.insets.bottom = 10; jPanel.add(subscribe, constraints9); GridBagConstraints constraints10 = new GridBagConstraints(); constraints10.weightx = 0; constraints10.weighty = 0; constraints10.gridx = 1; constraints10.gridy = 4; constraints10.gridheight = 1; constraints10.gridwidth = 1; constraints10.insets.right = 10; constraints10.insets.bottom = 10; jPanel.add(unsubscribe, constraints10); GridBagConstraints constraints11 = new GridBagConstraints(); constraints11.weightx = 0; constraints11.weighty = 0; constraints11.gridx = 0; constraints11.gridy = 6; constraints11.gridheight = 1; constraints11.gridwidth = 1; constraints11.insets.right = 10; constraints11.insets.bottom = 10; jPanel.add(messageText, constraints11); GridBagConstraints constraints12 = new GridBagConstraints(); constraints12.weightx = 0; constraints12.weighty = 0; constraints12.gridx = 0; constraints12.gridy = 7; constraints12.gridheight = 1; constraints12.gridwidth = 2; constraints12.insets.right = 10; constraints12.insets.bottom = 10; jPanel.add(message, constraints12); GridBagConstraints constraints13 = new GridBagConstraints(); constraints13.weightx = 0; constraints13.weighty = 0; constraints13.gridx = 1; constraints13.gridy = 6; constraints13.gridheight = 1; constraints13.gridwidth = 1; constraints13.insets.right = 10; constraints13.insets.bottom = 10; jPanel.add(publish, constraints13); GridBagConstraints constraints14 = new GridBagConstraints(); constraints14.weightx = 0; constraints14.weighty = 0; constraints14.gridx = 2; constraints14.gridy = 3; constraints14.gridheight = 1; constraints14.gridwidth = 1; constraints14.insets.right = 10; constraints14.insets.bottom = 10; jPanel.add(usernameText, constraints14); GridBagConstraints constraints15 = new GridBagConstraints(); constraints15.weightx = 0; constraints15.weighty = 0; constraints15.gridx = 2; constraints15.gridy = 4; constraints15.gridheight = 1; constraints15.gridwidth = 1; constraints15.insets.right = 10; constraints15.insets.bottom = 10; jPanel.add(username, constraints15); jPanel.revalidate(); setBounds(750,250,500,500); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } } And it seems like some elements are located across the line from each other, for example
constraintsN.gridx = 2; constraintsN.gridx = 0; But the distance between them is the same as between two adjacent rows. Most likely, as I think, this is due to the fact that the rows between them (in this case, 1) are not filled with anything, so they have a height of 0. But how to fix it, well, or in some other way set indents. Or just indent the bottom of the element? And another question, how to stretch such a button across the width of the entire cell?