Java作业三

一、创建一个简单的加法计算器

package demo01;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;

public class TestJButton extends JFrame implements ActionListener{
	JButton numButton[]=new JButton[10];
	JButton add=new JButton("加");
	JButton equal=new JButton("等于");
	JButton clear_show =new JButton("清空");
	TestJButton(){
		JPanel center=new JPanel();
		center.setLayout(new GridLayout(4, 3));
		
		for(int i=0;i<10;i++) {
			numButton[i]=new JButton(""+i);
			numButton[i].addActionListener(this);
			center.add(numButton[i]);
		}
		center.add(add);
		add.addActionListener(this);
		center.add(equal);
		equal.addActionListener(this);
		clear_show.addActionListener(this);
		add(clear_show,BorderLayout.NORTH);
		add(center,BorderLayout.CENTER);
		setTitle("整数加法器");
		setLocation(100, 100);
		setSize(350, 200);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	

	public static void main(String[] args) {
		new TestJButton();

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		JButton curr=(JButton) e.getSource();
		if(curr==clear_show) {
			clear_show.setText("清空");
			setTitle("整数加法器");
		}
		for(int i=0;i<10;i++) {
			if(curr==numButton[i]) {
				String content=clear_show.getText();
				if(content.equals("清空"))
					content=""+i;
				else
					content+=i;
				clear_show.setText(content);
			}
		}
		
		
		if(curr==add) {
			String content=clear_show.getText();
			content+="+";
			clear_show.setText(content);
		}
		if(curr==equal) {
			try {
				String formula=clear_show.getText();
				String[] nums=formula.split("\\+");
				int result=0;
				for(int i=0;i<nums.length;i++) {
					result+=Integer.parseInt(nums[i]);
				}
				formula+="="+result;
				clear_show.setText(formula);
						
			}
			catch(Exception ex) {
				setTitle("输入错误,请按长按钮清空");
			}
		}
	}
}
package demo01;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Reckoner {
	public static void main(String[] args) {
		SwingUtilities.invokeLater(() -> createAndShowGUI());
	}
	
	public static void createAndShowGUI() {
		JFrame frame = new JFrame("计算器");
		frame.setBounds(100, 200, 500, 600);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
		//1.设置布局管理器
		frame.setLayout(new BorderLayout());
		
		//2.创建上部件
		JButton butn = new JButton("清空");
		frame.add(butn,BorderLayout.PAGE_START);
		
		
		//3.创建下部件
		//3.1创建一个面板,网格布局
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout(4,3));
		//3.1创建按钮
		JButton []btn=new JButton[10];
		String str = "0123456789";
		for (int i = 0; i < btn.length; i++) {
			btn[i] = new JButton(str.charAt(i) + "");
			panel.add(btn[i]);
		}
		JButton add = new JButton("加");
		JButton equal = new JButton("等于");
		panel.add(add);
		panel.add(equal);
		
		//3.3面板加入窗口
		frame.add(panel);
		
		//4.事件处理
		//4.1创建监听器
		ActionListener listener = new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				JButton curr=(JButton) e.getSource();
				
				//清空按钮
				if(curr == butn) {
					butn.setText("清空");
				}
				
				//数字按钮
				for(int i = 0;i < 10;i++) {
					if(curr == btn[i]) {
						String content = butn.getText();
						if(content.equals("清空"))
							content=""+i;
						else
							content+=i;
						butn.setText(content);
					}
				}
				
				//加号按钮
				if(curr == add) {
					String content = butn.getText();
					content+="+";
					butn.setText(content);
				}
				
				//等于按钮
				if(curr == equal) {
					try {
						String formula = butn.getText();
						String[] nums = formula.split("\\+");
						int result = 0;
						for(int i = 0;i<nums.length;i++) {
							result += Integer.parseInt(nums[i]);
						}
						formula += "="+result;
						butn.setText(formula);
					}
					catch(Exception ex) {
						System.out.println("输入错误,请按清空按钮");
					}
				}
			}
		};
		//4.2按钮加上监听器
		butn.addActionListener(listener);
		add.addActionListener(listener);
		equal.addActionListener(listener);
		for(int i = 0;i < 9;i++) {
			btn[i].addActionListener(listener);
		}
		
	}
}

二、可以改变字体大小 、size

package demo02;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestCheckRadio extends JFrame implements ItemListener {
	JCheckBox italic = new JCheckBox("斜体");
	JCheckBox bold = new JCheckBox("粗体");
	JRadioButton large = new JRadioButton("大字号");
	JRadioButton middle = new JRadioButton("中字号");
	JRadioButton small = new JRadioButton("小字号");
	JTextArea area = new JTextArea();

	TestCheckRadio() {
		ButtonGroup group = new ButtonGroup();
		group.add(large);
		group.add(middle);
		group.add(small);

		setLayout(new GridLayout(1, 2, 10, 0));

		JPanel left = new JPanel();
		left.setLayout(new GridLayout(5, 1, 0, 10));
		left.add(italic);
		left.add(bold);
		left.add(large);
		left.add(middle);
		left.add(small);
		add(left);

		add(area);

		Font font = new Font("", 0, 25);
		area.setFont(font);
		area.setText("我喜欢C++,\n但更喜欢Java");

		italic.addItemListener(this);
		bold.addItemListener(this);
		large.addItemListener(this);
		middle.addItemListener(this);
		small.addItemListener(this);

		setSize(500, 200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	public void itemStateChanged(ItemEvent e) {
		int size = 25;
		if (small.isSelected())
			size = 15;
		if (large.isSelected())
			size = 35;
		int type = 0;
		if (italic.isSelected())
			type = type + Font.ITALIC;
		if (bold.isSelected())
			type = type + Font.BOLD;
		Font font = new Font("", type, size);
		area.setFont(font);
	}

	public static void main(String[] args) {
		new TestCheckRadio();
	}
}
package demo02;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class Typeface {
	public static void main(String[] args) {
		SwingUtilities.invokeLater(() -> createAndShowGUI());
	}
	
	public static void createAndShowGUI() {
		JFrame frame = new JFrame();
		frame.setBounds(100, 200, 700, 700);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
		//1.设置布局管理器
		frame.setLayout(new GridLayout(1, 2, 10, 0));
		
		//2.创建坐组件
		//2.1创建面板
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout(5,1,0,10));
		//2.2JCheckBox组件
		JCheckBox box1 = new JCheckBox("斜体");
		panel.add(box1);
		JCheckBox box2 = new JCheckBox("粗体");
		panel.add(box2);
		//2.3JRadioButton组件
		JRadioButton button01= new JRadioButton("大字号");
		panel.add(button01);
		JRadioButton button02= new JRadioButton("中字号");
		panel.add(button02);
		JRadioButton button03= new JRadioButton("小字号");
		panel.add(button03);
		//2.4按钮的互斥
		ButtonGroup group= new ButtonGroup();
		group.add(button01);
		group.add(button02);
		group.add(button03);
		//2.5将面板加入窗体
		frame.add(panel);
		
		//3.创建右组件
		JTextArea area = new JTextArea("我爱C、C++、Java,\n但我更爱Python。");
		frame.add(area);
		Font font = new Font("", 0, 25);
		area.setFont(font);
		
		//4.事件处理
		//4.1创建监听器
		ActionListener listener = new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				int type = 0;
				//斜体
				if(box1.isSelected()) {
					type += Font.ITALIC;
				}
				//粗体
				if(box2.isSelected()) {
					type += Font.BOLD;
				}
				
				int size = 25;
				//大号字
				if(button01.isSelected()) {
					size = 35;
				}
				//中号字
				if(button02.isSelected()) {
					size = 25;
				}
				//小号字
				if(button03.isSelected()) {
					size = 15;
				}
				Font font = new Font("", type, size);
				area.setFont(font);
				
			}
		};
		//4.2按钮加上监听器
		box1.addActionListener(listener);
		box2.addActionListener(listener);
		button01.addActionListener(listener);
		button02.addActionListener(listener);
		button03.addActionListener(listener);
			
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值