javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel3, 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, false) .addComponent(jButton1) .addComponent(jPasswordField1) .addComponent(jTextField2) .addComponent(jTextField1)) .addContainerGap(149, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addGap(18, 18, 18) .addComponent(jButton1) .addContainerGap(166, Short.MAX_VALUE)) ); pack();
layoutless = new Layoutless(); int labelsWidth=150; layoutless .item(new ComponentBox() .component(jLabel1) .width(labelsWidth) .height(22) .x(0) .y(8+25*0) ) .item(new ComponentBox() .component(jTextField1) .width(layoutless.width().minus(labelsWidth).minus(16).minus(50)) .height(22) .x(labelsWidth+8) .y(8+25*0) ) .item(new ComponentBox() .component(jButton2) .width(49) .height(21) .x(layoutless.width().minus(58)) .y(8+25*0) ) .item(new ComponentBox() .component(jLabel2) .width(labelsWidth) .height(22) .x(0) .y(8+25*1) ) .item(new ComponentBox() .component(jTextField2) .width(layoutless.width().minus(labelsWidth).minus(16)) .height(22) .x(labelsWidth+8) .y(8+25*1) ) .item(new ComponentBox() .component(jLabel3) .width(labelsWidth) .height(22) .x(0) .y(8+25*2) ) .item(new ComponentBox() .component(jPasswordField1) .width(layoutless.width().minus(labelsWidth).minus(16)) .height(22) .x(labelsWidth+8) .y(8+25*2) ) .item(new ComponentBox() .component(jButton1) .width(90) .height(27) .x(labelsWidth+8) .y(layoutless.height().minus(40)) ) .item(new ComponentBox() .component(iconLabel) .width(128) .height(128) .x(0) .y(layoutless.height().minus(140)) ) ; this.add(layoutless, BorderLayout.CENTER);
Source: https://habr.com/ru/post/127339/
All Articles