⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridlabapplet.java

📁 java2图形设计卷1:awt 源码
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class GridLabApplet extends Applet {
	public void init() {
		ButtonPanel buttonPanel = new ButtonPanel(this);
		Picker      picker      = new Picker(buttonPanel);

		setLayout(new BorderLayout());
		add(new Box(picker, "Grid Layout Settings"), "North");
		add(buttonPanel, "Center");
	}
}

class ButtonPanel extends Panel {
	private Button    one, two, three, four, five, 
	                       six, seven, eight, nine, ten;

	private Panel          panel  = new Panel();
	private TenPixelBorder border = new TenPixelBorder(panel);
	private GridLayout     gridLayout;

	public ButtonPanel(Applet applet) {
		one   = new Button("  1  ");
		two   = new Button("  2  ");
		three = new Button("  3  ");
		four  = new Button("  4  ");
		five  = new Button("  5  ");
		six   = new Button("  6  ");
		seven = new Button("  7  ");
		eight = new Button("  8  ");
		nine  = new Button("  9  ");
		ten   = new Button("  10  ");

		panel.setLayout(gridLayout = new GridLayout(3,2));
		panel.add(one);   panel.add(two);   panel.add(three); 
		panel.add(four);  panel.add(five);  panel.add(six);
		panel.add(seven); panel.add(eight); panel.add(nine);
		panel.add(ten);

		setLayout(new BorderLayout());
		add      ("Center", border);
	}
	public void updateLayout(int rows, int cols, 
	                         int hgap, int vgap) {
		try {
			gridLayout.setRows(rows);
			gridLayout.setColumns(cols);
			gridLayout.setHgap(hgap);
			gridLayout.setVgap(vgap);

			panel.invalidate();
			border.validate();
		}
		catch(IllegalArgumentException e) {
			e.printStackTrace();
		}
	}
}

class Picker extends Panel implements ItemListener {
	private Label  hgapLabel = new Label("Horizontal:");
	private Label  vgapLabel = new Label("Vertical:");
	private Label  rowLabel  = new Label("rows:");
	private Label  colLabel  = new Label("cols:");

	private Choice hchoice   = new Choice();
	private Choice vchoice   = new Choice();
	private Choice rowChoice = new Choice();
	private Choice colChoice = new Choice();

	private ButtonPanel buttonPanel;

	public Picker(ButtonPanel buttonPanel) {
		Panel rowCols = new Panel();
		Panel gaps    = new Panel();

		this.buttonPanel = buttonPanel;
		hchoice.addItem("0");  
		hchoice.addItem("5");  
		hchoice.addItem("10");
		hchoice.addItem("15"); 
		hchoice.addItem("20"); 

		vchoice.addItem("0");  
		vchoice.addItem("5");  
		vchoice.addItem("10");
		vchoice.addItem("15"); 
		vchoice.addItem("20");

		rowChoice.addItem("0"); 
		rowChoice.addItem("1"); 
		rowChoice.addItem("2");
		rowChoice.addItem("3"); 
		rowChoice.addItem("4"); 
		rowChoice.addItem("5");
		rowChoice.select (3);

		colChoice.addItem("0"); 
		colChoice.addItem("1"); 
		colChoice.addItem("2");
		colChoice.addItem("3"); 
		colChoice.addItem("4"); 
		colChoice.addItem("5");
		colChoice.select (2);

		rowCols.add(rowLabel); 
		rowCols.add(rowChoice);
		rowCols.add(colLabel); 
		rowCols.add(colChoice);

		gaps.add(hgapLabel);   
		gaps.add(hchoice);
		gaps.add(vgapLabel);   
		gaps.add(vchoice);

		hchoice.addItemListener(this);
		vchoice.addItemListener(this);
		rowChoice.addItemListener(this);
		colChoice.addItemListener(this);

		add(new Box(rowCols, "Rows and Columns"));
		add(new Box(gaps,    "Horizontal and Vertical Gaps"));
	}
	public void itemStateChanged(ItemEvent event) {
		int rows, cols, hgap, vgap;

		rows = Integer.parseInt(rowChoice.getSelectedItem());
		cols = Integer.parseInt(colChoice.getSelectedItem());
		hgap = Integer.parseInt(hchoice.getSelectedItem());
		vgap = Integer.parseInt(vchoice.getSelectedItem());

		buttonPanel.updateLayout(rows, cols, hgap, vgap);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -