/** * GridBagLayoutApplet.java * Copyright (c) 1998 Yoon Kyung Koo. All rights reserved. * * First release date 1998/06/10 * * @version 1.0 1998/06/10 * @author Yoon Kyung Koo */ import java.awt.*; public class GridBagLayoutApplet extends java.applet.Applet { GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints gridc = new GridBagConstraints(); Button[] button=new Button[10]; TextField xText, yText, widthText, heightText; Choice choice; Panel buttonPanel; void arrangeButton(Button button) { gridbag.setConstraints(button, gridc); } public void init() { buttonPanel=new Panel(); buttonPanel.setLayout(gridbag); setFont(new Font("Helvetica", Font.PLAIN, 14)); gridc.fill = GridBagConstraints.BOTH; for (int i=0; i<10; i++) { button[i]=new Button("Button"+(i+1)); buttonPanel.add(button[i]); } arrangeButton(button[0]); arrangeButton(button[1]); arrangeButton(button[2]); gridc.gridwidth = GridBagConstraints.REMAINDER; //end row arrangeButton(button[3]); arrangeButton(button[4]); gridc.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row arrangeButton(button[5]); gridc.gridwidth = GridBagConstraints.REMAINDER; //end row arrangeButton(button[6]); gridc.gridwidth = 1; //reset to the default gridc.gridheight = 2; arrangeButton(button[7]); gridc.gridwidth = GridBagConstraints.REMAINDER; //end row gridc.gridheight = 1; //reset to the default arrangeButton(button[8]); arrangeButton(button[9]); Panel panel=new Panel(); Panel subPanel1=new Panel(); Panel subPanel2=new Panel(); xText=new TextField(3); yText=new TextField(3); widthText=new TextField(3); heightText=new TextField(3); choice= new Choice(); for (int i=0; i<10; i++) choice.addItem("Button"+(i+1)); subPanel1.setLayout(new GridLayout(2, 4)); subPanel1.add(new Label("weight.x ", Label.RIGHT)); subPanel1.add(xText); subPanel1.add(new Label("weight.y ", Label.RIGHT)); subPanel1.add(yText); subPanel1.add(new Label("width ", Label.RIGHT)); subPanel1.add(widthText); subPanel1.add(new Label("height ", Label.RIGHT)); subPanel1.add(heightText); subPanel2.setLayout(new GridLayout(2, 1)); subPanel2.add(choice); subPanel2.add(new Button("Apply")); panel.setLayout(new BorderLayout()); panel.add("Center", subPanel1); panel.add("East", subPanel2); setLayout(new BorderLayout()); add("South", panel); add("Center", buttonPanel); validate(); } public boolean action(Event evt, Object obj) { if (evt.target instanceof Button && ((String) obj).equals("Apply")) { String text=xText.getText(); if (!text.equals("") ) gridc.weightx = Float.valueOf(text).floatValue(); text=yText.getText(); if (!text.equals("") ) gridc.weighty = Float.valueOf(text).floatValue(); text=widthText.getText(); if (!text.equals("") ) gridc.gridwidth = Integer.valueOf(text).intValue(); text=heightText.getText(); if (!text.equals("") ) gridc.gridheight = Integer.valueOf(text).intValue(); // apply new values arrangeButton(button[choice.getSelectedIndex()]); // invalidate components and re-layout buttonPanel.invalidate(); buttonPanel.layout(); // reset to default values gridc.weightx = 0.0; gridc.weighty = 0.0; gridc.gridwidth = 1; gridc.gridheight = 1; return true; } else return false; } }