// // display different layouts. // // see main method for command-line arguments. // import java.awt.* ; import java.awt.event.* ; class Layouts { // // command-line arguments are one of the following: // flow N (creates a frame using FlowLayout, containing // N Buttons). // grid N M (creates a frame using GridLayout, containing // an N by M array of buttons). // border (creates a frame using BorderLayout, containing // 5 buttons). // public static void main(String[] args) { String prompt = "Argument must be one of:\n" + "\tflow N\n" + "\tgrid N M\n" + "\tborder" ; if (args.length < 1) { System.out.println(prompt) ; System.exit(-1) ; } final Frame f = new CloseableFrame("Layouts") ; String l = args[0] ; if (l.equals("flow")) { if (args.length < 2) { System.out.println(prompt) ; System.exit(-1) ; } f.setLayout(new FlowLayout()) ; int N = Integer.parseInt(args[1]) ; for (int i = 0 ; i < N ; i++) f.add(new Button("button " + i)) ; } else if (l.equals("grid")) { if (args.length < 3) { System.out.println(prompt) ; System.exit(-1) ; } int N = Integer.parseInt(args[1]) ; int M = Integer.parseInt(args[2]) ; f.setLayout(new GridLayout(N, M)) ; for (int i = 0 ; i < N ; i++) for (int j = 0 ; j < M ; j++) f.add(new Button("button " + i + ", " + j)) ; } else if (l.equals("border")) { f.setLayout(new BorderLayout()) ; f.add(new Button("North"), "North") ; f.add(new Button("South"), "South") ; f.add(new Button("East"), "East") ; f.add(new Button("West"), "West") ; f.add(new Button("Center"), "Center") ; } else { System.out.println(prompt) ; System.exit(-1) ; } f.pack() ; f.show() ; } }