{"id":10321,"date":"2015-08-26T07:17:17","date_gmt":"2015-08-26T11:17:17","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10321"},"modified":"2022-05-10T20:08:41","modified_gmt":"2022-05-11T00:08:41","slug":"placement-of-buttons-in-a-boxlayout-using-rigid-areas-struts-and-glue","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10321","title":{"rendered":"Placement of buttons in a BoxLayout using rigid areas, struts, and glue"},"content":{"rendered":"<pre>###############\r\nInvisibleComponentTest.java Placement of buttons in a BoxLayout using rigid areas, struts, and glue\r\n###############\r\nimport java.awt.*;\r\nimport javax.swing.*;\r\nimport javax.swing.border.*;\r\n\r\n\/** Example of using rigid areas, struts, and glue to\r\n\u00a0*\u00a0 produce the effect of invisible components.\r\n\u00a0*\r\n\u00a0******************\r\n\r\npublic class InvisibleComponentTest extends JPanel {\r\n\u00a0 Component spacer;\r\n\r\n\u00a0 public InvisibleComponentTest() {\r\n\u00a0\u00a0\u00a0 setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));\r\n\r\n\u00a0\u00a0\u00a0 \/\/ Place a rigid invisible component 25 pixels wide and\r\n\u00a0\u00a0\u00a0 \/\/ 75 pixels tall between the two buttons\r\n\u00a0\u00a0\u00a0 JPanel p1= new JPanel();\r\n\u00a0\u00a0\u00a0 spacer = Box.createRigidArea(new Dimension(20,75));\r\n\u00a0\u00a0\u00a0 setUpPanel(p1, \"Rigid Area - 20x75 pixels\", spacer);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ Separate two buttons by a 60-pixel horizontal strut\r\n\u00a0\u00a0\u00a0 JPanel p2= new JPanel();\r\n\u00a0\u00a0\u00a0 spacer = Box.createHorizontalStrut(60);\r\n\u00a0\u00a0\u00a0 setUpPanel(p2, \"Horizontal Strut - 60 pixels\", spacer);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ Horizontal glue in FlowLayout - not useful\r\n\u00a0\u00a0\u00a0 JPanel p3= new JPanel();\r\n\u00a0\u00a0\u00a0 spacer = Box.createHorizontalGlue();\r\n\u00a0\u00a0\u00a0 setUpPanel(p3, \"Horizontal Glue - FlowLayout\", spacer);\r\n\r\n\u00a0\u00a0\u00a0 \/\/ Add glue to fill all remaining horizontal space between\r\n\u00a0\u00a0\u00a0 \/\/ the two buttons. Glue not supported by default FlowLayout\r\n\u00a0\u00a0\u00a0 \/\/ of JPanel.\u00a0 Change layout of JPanel to BoxLayout.\r\n\u00a0\u00a0\u00a0 JPanel p4= new JPanel();\r\n\u00a0\u00a0\u00a0 p4.setLayout(new BoxLayout(p4,BoxLayout.X_AXIS));\r\n\u00a0\u00a0\u00a0 spacer = Box.createHorizontalGlue();\r\n\u00a0\u00a0\u00a0 setUpPanel(p4, \"Horizontal Glue - BoxLayout\", spacer);\r\n\r\n\u00a0\u00a0\u00a0 add(p1);\r\n\u00a0\u00a0\u00a0 add(p2);\r\n\u00a0\u00a0\u00a0 add(p3);\r\n\u00a0\u00a0\u00a0 add(p4);\r\n\u00a0 }\r\n\r\n\u00a0 \/\/ Helper to set the border and add components\r\n\u00a0 private void setUpPanel(JPanel p, String title,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Component spacer) {\r\n\u00a0\u00a0\u00a0 p.setBorder(BorderFactory.createTitledBorder(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 BorderFactory.createEtchedBorder(),title,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TitledBorder.TOP,TitledBorder.CENTER));\r\n\u00a0\u00a0\u00a0 p.setBackground(Color.white);\r\n\u00a0\u00a0\u00a0 p.add(new JButton(\"Left\"));\r\n\u00a0\u00a0\u00a0 p.add(spacer);\r\n\u00a0\u00a0\u00a0 p.add(new JButton(\"Right\"));\r\n\u00a0 }\r\n\r\n\u00a0 public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0 String title = \"Using Invisible Components\";\r\n\u00a0\u00a0\u00a0 WindowUtilities.setNativeLookAndFeel();\r\n\u00a0\u00a0\u00a0 WindowUtilities.openInJFrame(new InvisibleComponentTest(),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 350, 325, title);\r\n\u00a0 }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>############### InvisibleComponentTest.java Placement of buttons in a BoxLayout using rigid areas, struts, and glue ############### import java.awt.*; import javax.swing.*; import javax.swing.border.*; \/** Example of using rigid areas, struts, and glue to \u00a0*\u00a0 produce the effect of invisible components. \u00a0* \u00a0****************** public class InvisibleComponentTest extends JPanel { \u00a0 Component spacer; \u00a0 public InvisibleComponentTest() { \u00a0\u00a0\u00a0 setLayout(new &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10321\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424,1955],"tags":[706,308,285],"class_list":["post-10321","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","category-struts","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26789,"url":"http:\/\/bangla.sitestree.com\/?p=26789","url_meta":{"origin":10321,"position":0},"title":"Placement of buttons in a BoxLayout using rigid areas, struts, and glue #Programming Code Examples #Java\/J2EE\/J2ME #Layout Managers","author":"Sayed","date":"May 1, 2021","format":false,"excerpt":"############### InvisibleComponentTest.java Placement of buttons in a BoxLayout using rigid areas, struts, and glue ############### import java.awt.*; import javax.swing.*; import javax.swing.border.*; \/** Example of using rigid areas, struts, and glue to * produce the effect of invisible components. * ****************** public class InvisibleComponentTest extends JPanel { Component spacer; public InvisibleComponentTest()\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10225,"url":"http:\/\/bangla.sitestree.com\/?p=10225","url_meta":{"origin":10321,"position":1},"title":"A JPanel that displays six radio buttons with labels.","author":"","date":"August 25, 2015","format":false,"excerpt":"A JPanel that displays six radio buttons with labels. import java.awt.*; import javax.swing.*; \/** A JPanel that displays six JRadioButtons. \u00a0* \u00a0*. \u00a0*\/ public class SixChoicePanel extends JPanel { \u00a0 public SixChoicePanel(String title, String[] buttonLabels) { \u00a0\u00a0\u00a0 super(new GridLayout(3, 2)); \u00a0\u00a0\u00a0 setBackground(Color.lightGray); \u00a0\u00a0\u00a0 setBorder(BorderFactory.createTitledBorder(title)); \u00a0\u00a0\u00a0 ButtonGroup group = new ButtonGroup();\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26914,"url":"http:\/\/bangla.sitestree.com\/?p=26914","url_meta":{"origin":10321,"position":2},"title":"A JPanel that displays six radio buttons with labels. #Programming Code Examples #Java\/J2EE\/J2ME #Basic Swing","author":"Author-Check- Article-or-Video","date":"May 5, 2021","format":false,"excerpt":"A JPanel that displays six radio buttons with labels. import java.awt.*; import javax.swing.*; \/** A JPanel that displays six JRadioButtons. * *. *\/ public class SixChoicePanel extends JPanel { public SixChoicePanel(String title, String[] buttonLabels) { super(new GridLayout(3, 2)); setBackground(Color.lightGray); setBorder(BorderFactory.createTitledBorder(title)); ButtonGroup group = new ButtonGroup(); JRadioButton option; int halfLength =\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10317,"url":"http:\/\/bangla.sitestree.com\/?p=10317","url_meta":{"origin":10321,"position":3},"title":"Layout of complicated GUI by taking advantage of nested containers","author":"","date":"August 26, 2015","format":false,"excerpt":"################# NestedLayout.java Layout of complicated GUI by taking advantage of nested containers. Uses WindowUtilities.java and ExitListener.java. ################## import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; \/** An example demonstrating the use of nested containers \u00a0*\u00a0 to lay out the components. See GridBagTest.java for \u00a0*\u00a0 implementation by\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26785,"url":"http:\/\/bangla.sitestree.com\/?p=26785","url_meta":{"origin":10321,"position":4},"title":"Layout of complicated GUI by taking advantage of nested containers #Programming Code Examples #Java\/J2EE\/J2ME #Layout Managers","author":"Author-Check- Article-or-Video","date":"May 1, 2021","format":false,"excerpt":"################# NestedLayout.java Layout of complicated GUI by taking advantage of nested containers. Uses WindowUtilities.java and ExitListener.java. ################## import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; \/** An example demonstrating the use of nested containers * to lay out the components. See GridBagTest.java for * implementation by\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10243,"url":"http:\/\/bangla.sitestree.com\/?p=10243","url_meta":{"origin":10321,"position":5},"title":"Creates three radio buttons and illustrates handling","author":"","date":"August 25, 2015","format":false,"excerpt":"JRadioButtonTest.java Creates three radio buttons and illustrates handling ItemEvents in response to selecting a radio button. import javax.swing.JRadioButton; import javax.swing.ButtonGroup; import java.awt.*; import java.awt.event.*; import javax.swing.*; \/** \u00a0*\/ public class JRadioButtonTest extends JPanel \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 implements ItemListener { \u00a0 public JRadioButtonTest() { \u00a0 \u00a0 \u00a0\u00a0\u00a0 String[] labels = {\"Java Swing\",\"Java Servlets\",\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10321"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10321\/revisions"}],"predecessor-version":[{"id":10322,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10321\/revisions\/10322"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10321"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}