JavaSE基础(64) GUI 组合布局实现简单的计算器

JavaSE基础(64) GUI 组合布局实现简单的计算器_第1张图片

/**
 * 组合布局:计算器的简单实现
 * @author Administrator
 */
public class CalculatorDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame frame = new JFrame("计算器");//创建一个带标题的窗口对象frame
		frame.setLayout(null);//清空布局
		frame.setVisible(true);//显示窗口
		frame.setSize(300, 400);//设置窗口大小    此方法要在setLocationRelativeTo上面
		frame.setLocationRelativeTo(null);//设置窗口居中
		frame.setDefaultCloseOperation(3);//点击X关闭程序  3为结束程序
		
		frame.setLayout(new BorderLayout());//设置边框布局
		
		TextField textField = new TextField();//文本框
		textField.setBackground(Color.white);
		
		Panel panel = new Panel();//Panel:一个可以承载其他组件的一个面板    Frame:顶层容器
		setPanel(panel,textField);//一个设置当前Panel对象的方法   ==》 添加按钮组件对象
		
		frame.add(textField,BorderLayout.NORTH);
		frame.add(panel,BorderLayout.CENTER);
	}
 
	private static void setPanel(Panel panel,TextField textField) {
		// TODO Auto-generated method stub
		panel.setLayout(new GridLayout(3, 3,10,10));//设置网格布局  3行3列  ,垂直间距和水平间距:10像素
		for (int i = 1; i < 10; i++) {
			Button button = new Button(""+ i);
			button.setBackground(Color.orange);
			MyActionListener myActionListener = new MyActionListener(textField,button);
			button.addActionListener(myActionListener);//添加myActionListener监听事件
			panel.add(button);
		}
	}

}
class MyActionListener implements ActionListener{
	
	private TextField textField;//接收外界传过来的文本框对象
	private Button button;//接受外界传过来的Button对象

	public MyActionListener(TextField textField, Button button) {
		super();
		this.textField = textField;
		this.button = button;
	}

	/*
	 * 绑定了此监听器的按钮,只要一点击就会自动调用此方法
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		textField.setText(button.getLabel());//getLabel():获取button按钮的标签值
	}
	
}

 

你可能感兴趣的:(-----❶,JavaSE基础)