рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрд┐рдирд╛ рд▓реЗрдЖрдЙрдЯ

рд╕реНрд╡рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рдЧрднрдЧ 15 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреА рдереА рдФрд░ рдЗрди рд╕рднреА 15 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рд░ рдХреЛрдИ рдЬреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣реА рд╕рд╡рд╛рд▓ рдкреВрдЫрддрд╛ рд╣реИ:
- рдореИрдВ рдЗрди рд╕рднреА рд▓реЗрдЖрдЙрдЯ рдкреНрд░рдмрдВрдзрдХ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдЦреЗрддреЛрдВ рдореЗрдВ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдмрдЯрди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ?

рдорд╛рдирдХ JRE рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдлреНрд▓реЛрд▓реЗрдпреМрдЯ, GroupLayout, рдЖрджрд┐), рдирдП рд▓рд┐рдВрдХрд░ рдЬреИрд╕реЗ MigLayout рд▓рдЧрд╛рддрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлреЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдЫрд╡рд┐


рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдлреЙрд░реНрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдмрдЯрди рд╡рд┐рдВрдбреЛ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВ рдЕрд░реНрдерд╛рдд рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдирд┐рд░рдВрддрд░ рдЖрдХрд╛рд░ / рд╕реНрдерд┐рддрд┐ рдХреА рдПрдХ рддреБрдЪреНрдЫ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред

рдиреЗрдЯрдмреАрдВрд╕ рдореИрдЯрд┐рд╕ рдЬреИрд╕реЗ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдлреЙрд░реНрдо рдЙрджрд╛рд╣рд░рдг:

рдЫрд╡рд┐

рдбреНрд░рд╛рдЗрдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

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(); 


рдХреЛрдб рднрдпрд╛рдирдХ рд╣реИред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХреБрдЫ рдХрд╣рд╛рдБ рдФрд░ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред рдФрд░ рдпреЗ рдХреЗрд╡рд▓ рдПрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдлрд╝реАрд▓реНрдб рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХреЗ рд╕реНрдерд╛рди / рдЖрдХрд╛рд░ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред

рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдХрд▓реНрдк

рдЖрдк рд╕реЗрдЯрд▓рд╛рдЗрди (рд╢реВрдиреНрдп) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╕ рдХрдВрдЯреЗрдирд░ рд▓рд┐рдВрдХрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯрд╕реНрд▓рд╛рдЗрдЬ рдФрд░ рд╕реЗрдЯрд▓реЛрдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдЖрдХрд╛рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдмреЗрд╕рд┐рдХ рдореЗрдВред
рд╡рд┐рдзрд┐ рдЕрдирд╛рдбрд╝реА рд╣реИ рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЗрдЖрдЙрдЯ рдкрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред

рдореЗрд░рд╛ рдЕрдкрдирд╛ рд╡рд┐рдХрд▓реНрдк

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдлреЙрд░реНрдо рдХреЗ рд╕рд░рд▓ рдФрд░ рджреГрд╢реНрдп рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рд╕реЛрд░реНрд╕ рдХреЛрдб рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг https://code.google.com/p/layout-less/ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░рд┐рдпреЛрдЬрдирд╛ http://habrahabr.ru/blogs/java/127076/ рдкрд░ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ

рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдлреЙрд░реНрдо рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
  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/In127339/


All Articles