I am trying to figure out what layouts should be used on the JFrame to get this layout accomplished. I am trying to code the GUI rather than use visual GUI-making tools. So far I was only able to get it to look like this:
This is the source code for the GUI above: http://pastebin.com/s06pareG
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JPanel upPanel = new JPanel();
upPanel.setLayout(new GridLayout(2,3));
JLabel data = new JLabel("Data Source Name:");
upPanel.add(data);
JTextField dataText = new JTextField();
upPanel.add(dataText);
JLabel desc = new JLabel("Description:");
upPanel.add(desc);
JTextField descText = new JTextField();
upPanel.add(descText);
JPanel midPanel = new JPanel();
midPanel.setBorder(new TitledBorder(null, "Database", TitledBorder.LEADING, TitledBorder.TOP, null, null));
JLabel dbTitle = new JLabel("Database");
JButton select = new JButton("Select...");
JButton create = new JButton("Create...");
JButton repair = new JButton("Repair...");
JButton compact = new JButton("Compact...");
JPanel eastPanel = new JPanel();
eastPanel.setLayout(new GridLayout(4,1));
JButton ok = new JButton("OK");
JButton cancel = new JButton("Cancel");
JButton help = new JButton("Help");
JButton advanced = new JButton("Advanced...");
eastPanel.add(ok); eastPanel.add(cancel); eastPanel.add(help); eastPanel.add(advanced);
frame.getContentPane().add(upPanel, BorderLayout.NORTH);
frame.getContentPane().add(midPanel, BorderLayout.WEST);
midPanel.setLayout(new BorderLayout(0, 0));
midPanel.add(dbTitle);
midPanel.add(select);
midPanel.add(create);
midPanel.add(repair);
midPanel.add(compact);
frame.getContentPane().add(eastPanel, BorderLayout.EAST);
}
I was thinking about making the JFrame absolute layout and then creating 4 JPanels with GridLayout. Also, I'm having trouble making the "Database:" label sit on its own row and placing the JButtons below it. What types of layouts and customizing functions should I look into to accomplish this look?
The Layout managers enable us to control the way in which visual components are arranged in the GUI forms by determining the size and position of components within the containers.
To create a new frame you type: JFrame frame = new JFrame(); Inside the constructor method we need to make sure that all of the buttons are put in the grid layout. To do this we set the layout of frame by typing: frame. setLayout(new GridLayout(x, y));
Swing provides a rich set of widgets and packages to make sophisticated GUI components for Java applications. Swing is a part of Java Foundation Classes(JFC), which is an API for Java GUI programing that provide GUI.
Java Swing is a lightweight Java graphical user interface (GUI) widget toolkit that includes a rich set of widgets. It is part of the Java Foundation Classes (JFC) and includes several packages for developing rich desktop applications in Java.
Break down you layout into it's basic areas of responsibility, focusing each area individually and managing it's own layout requirements
So, as I see, you have four basic areas of functionality...
You need to break these apart into their own individual components and focus on there layout and functional requirements
So, this is pretty basic
public class SourcePane extends JPanel {
private JTextField datasourceName;
private JTextField desciption;
public SourcePane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
add(new JLabel("Data Source Name: "), gbc);
gbc.gridy++;
add(new JLabel("Description: "), gbc);
gbc.gridx++;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
add((datasourceName = new JTextField(10)), gbc);
gbc.gridy++;
add((desciption = new JTextField(10)), gbc);
}
public String getDataSourceName() {
return datasourceName.getText();
}
public String getDescription() {
return desciption.getText();
}
public void setDataSourceName(String name) {
datasourceName.setText(name);
}
public void setDescription(String description) {
desciption.setText(description);
}
}
I've also added some accessors, which I won't be adding to the rest of the code, but provides the idea of how you might get/set information between the components
This is suitably more difficult, as there is a suggest of an additional label next to the Database:
label. It "might" be possible to get this done in a single layout, but it would be easier to use an additional container and further compound the layouts
public class DatabasePane extends JPanel {
private JButton select, create, repair, compact;
private JLabel database;
public DatabasePane() {
setLayout(new GridBagLayout());
setBorder(new CompoundBorder(new TitledBorder("Database"), new EmptyBorder(12, 0, 0, 0)));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(0, 0, 0, 4);
JPanel panel = new JPanel(new GridBagLayout());
panel.add(new JLabel("Database: "), gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(0, 0, 0, 0);
panel.add((database = new JLabel()), gbc);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(4, 4, 4, 4);
add(panel, gbc);
gbc.gridwidth = 1;
gbc.weightx = 0.25;
gbc.gridy++;
gbc.fill = GridBagConstraints.HORIZONTAL;
add((select = new JButton("Select")), gbc);
gbc.gridx++;
add((create = new JButton("Create")), gbc);
gbc.gridx++;
add((repair = new JButton("Repair")), gbc);
gbc.gridx++;
add((compact = new JButton("Compact")), gbc);
}
}
Again, this is a little more complex then it seems, as the Database:
button seems to have an additional label. You could simply make use of the buttons text
property, but I've chosen to further demonstrate the idea of compound layouts
public class SystemDatabasePane extends JPanel {
private JRadioButton none, database;
private JLabel databaseLabel;
private JButton systemDatabase;
public SystemDatabasePane() {
setLayout(new GridBagLayout());
setBorder(new CompoundBorder(new TitledBorder("System Database"), new EmptyBorder(8, 0, 0, 0)));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(0, 0, 0, 4);
gbc.anchor = GridBagConstraints.WEST;
JPanel panel = new JPanel(new GridBagLayout());
panel.add((none = new JRadioButton("None")), gbc);
gbc.gridy++;
panel.add((none = new JRadioButton("Database: ")), gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
panel.add((databaseLabel = new JLabel("")), gbc);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(4, 4, 4, 4);
add(panel, gbc);
gbc.gridy++;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.CENTER;
add((systemDatabase = new JButton("System Database...")), gbc);
systemDatabase.setEnabled(false);
}
}
And finally, the "actions" panel. This is actually relatively simply, but makes use of the GridBagLayout
and the properties of it's constraints to do the whole thing in a single layout
public class ActionPane extends JPanel {
private JButton okay, cancel, help, advanced, options;
public ActionPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.insets = new Insets(4, 4, 4, 4);
add((okay = new JButton("Ok")), gbc);
gbc.gridy++;
add((cancel = new JButton("Cancel")), gbc);
gbc.gridy++;
add((help = new JButton("Help")), gbc);
gbc.gridy++;
add((advanced = new JButton("Advanced")), gbc);
gbc.gridy++;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.SOUTH;
add((options = new JButton("Options >>")), gbc);
}
}
This then simply puts all the separate elements together into a single layout
public class DatabasePropertiesPane extends JPanel {
private SourcePane sourcePane;
private DatabasePane databasePane;
private SystemDatabasePane systemDatabasePane;
private ActionPane actionPane;
public DatabasePropertiesPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 0.33;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(4, 4, 4, 4);
add((sourcePane = new SourcePane()), gbc);
gbc.gridy++;
add((databasePane = new DatabasePane()), gbc);
gbc.gridy++;
add((systemDatabasePane = new SystemDatabasePane()), gbc);
gbc.gridy = 0;
gbc.gridx++;
gbc.gridheight = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.weighty = 1;
gbc.weightx = 0;
add((actionPane = new ActionPane()), gbc);
}
}
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
public class TestLayout {
public static void main(String[] args) {
new TestLayout();
}
public TestLayout() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DatabasePropertiesPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class DatabasePropertiesPane extends JPanel {
private SourcePane sourcePane;
private DatabasePane databasePane;
private SystemDatabasePane systemDatabasePane;
private ActionPane actionPane;
public DatabasePropertiesPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 0.33;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(4, 4, 4, 4);
add((sourcePane = new SourcePane()), gbc);
gbc.gridy++;
add((databasePane = new DatabasePane()), gbc);
gbc.gridy++;
add((systemDatabasePane = new SystemDatabasePane()), gbc);
gbc.gridy = 0;
gbc.gridx++;
gbc.gridheight = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.weighty = 1;
gbc.weightx = 0;
add((actionPane = new ActionPane()), gbc);
}
}
public class SourcePane extends JPanel {
private JTextField datasourceName;
private JTextField desciption;
public SourcePane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
add(new JLabel("Data Source Name: "), gbc);
gbc.gridy++;
add(new JLabel("Description: "), gbc);
gbc.gridx++;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
add((datasourceName = new JTextField(10)), gbc);
gbc.gridy++;
add((desciption = new JTextField(10)), gbc);
}
public String getDataSourceName() {
return datasourceName.getText();
}
public String getDescription() {
return desciption.getText();
}
public void setDataSourceName(String name) {
datasourceName.setText(name);
}
public void setDescription(String description) {
desciption.setText(description);
}
}
public class DatabasePane extends JPanel {
private JButton select, create, repair, compact;
private JLabel database;
public DatabasePane() {
setLayout(new GridBagLayout());
setBorder(new CompoundBorder(new TitledBorder("Database"), new EmptyBorder(12, 0, 0, 0)));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(0, 0, 0, 4);
JPanel panel = new JPanel(new GridBagLayout());
panel.add(new JLabel("Database: "), gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(0, 0, 0, 0);
panel.add((database = new JLabel()), gbc);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(4, 4, 4, 4);
add(panel, gbc);
gbc.gridwidth = 1;
gbc.weightx = 0.25;
gbc.gridy++;
gbc.fill = GridBagConstraints.HORIZONTAL;
add((select = new JButton("Select")), gbc);
gbc.gridx++;
add((create = new JButton("Create")), gbc);
gbc.gridx++;
add((repair = new JButton("Repair")), gbc);
gbc.gridx++;
add((compact = new JButton("Compact")), gbc);
}
}
public class SystemDatabasePane extends JPanel {
private JRadioButton none, database;
private JLabel databaseLabel;
private JButton systemDatabase;
public SystemDatabasePane() {
setLayout(new GridBagLayout());
setBorder(new CompoundBorder(new TitledBorder("System Database"), new EmptyBorder(8, 0, 0, 0)));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(0, 0, 0, 4);
gbc.anchor = GridBagConstraints.WEST;
JPanel panel = new JPanel(new GridBagLayout());
panel.add((none = new JRadioButton("None")), gbc);
gbc.gridy++;
panel.add((none = new JRadioButton("Database: ")), gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
panel.add((databaseLabel = new JLabel("")), gbc);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(4, 4, 4, 4);
add(panel, gbc);
gbc.gridy++;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.CENTER;
add((systemDatabase = new JButton("System Database...")), gbc);
systemDatabase.setEnabled(false);
}
}
public class ActionPane extends JPanel {
private JButton okay, cancel, help, advanced, options;
public ActionPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.insets = new Insets(4, 4, 4, 4);
add((okay = new JButton("Ok")), gbc);
gbc.gridy++;
add((cancel = new JButton("Cancel")), gbc);
gbc.gridy++;
add((help = new JButton("Help")), gbc);
gbc.gridy++;
add((advanced = new JButton("Advanced")), gbc);
gbc.gridy++;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.SOUTH;
add((options = new JButton("Options >>")), gbc);
}
}
}
Have a look at Laying Out Components Within a Container and How to Use GridBagLayout for more details
It, unfortunately, has a bad rap around these parts, but Netbeans' GUI Builder is great for this kind of project. The GUI in this image took me about five minutes to build:
I actually recorded a video of it, but the video did not turn out well because I'm too cheap to pay for good screen recording software. Anyways, I recommend Netbeans GUI Builder. The learning curve is not steep at all (especially compared to handwritten layout managers) and it can do pretty much anything any other layout manager can do, and much quicker.
Below is the code that this generated, but I strongly recommend doing it yourself because Netbeans also generates an .xml
file that is vital to the proper functioning of the GUI Builder. And if you want to make changes in the future, you'll need the GUI Builder to do so (one of the drawbacks, but to me it's minor).
public class NewJPanel2 extends javax.swing.JPanel {
/**
* Creates new form NewJPanel2
*/
public NewJPanel2() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jRadioButton1 = new javax.swing.JRadioButton();
jRadioButton2 = new javax.swing.JRadioButton();
jButton9 = new javax.swing.JButton();
jButton10 = new javax.swing.JButton();
jLabel1.setText("Data Source Name:");
jLabel2.setText("Description:");
jButton1.setText("Ok");
jButton4.setText("Cancel");
jButton2.setText("Help");
jButton3.setText("Advanced");
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Database"));
jLabel3.setText("Database:");
jButton5.setText("Select");
jButton6.setText("Create");
jButton7.setText("Compact");
jButton8.setText("Repair");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jButton5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton5, jButton6, jButton7, jButton8});
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton5)
.addComponent(jButton6)
.addComponent(jButton8)
.addComponent(jButton7))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("System Database"));
jRadioButton1.setText("None");
jRadioButton2.setText("Database:");
jButton9.setText("System Database...");
jButton9.setEnabled(false);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jRadioButton1)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jRadioButton2)
.addGap(49, 49, 49)
.addComponent(jButton9)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(15, 15, 15)
.addComponent(jRadioButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jRadioButton2)
.addContainerGap(29, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton9)
.addContainerGap())
);
jButton10.setText("Options>>");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField1)
.addComponent(jTextField2))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton4, javax.swing.GroupLayout.Alignment.TRAILING)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING))
.addComponent(jButton10, javax.swing.GroupLayout.Alignment.TRAILING))))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton1, jButton10, jButton2, jButton3, jButton4});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton3))
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButton10)))
.addContainerGap())
);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton10;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With