java swing求平方根

注:本文非标准教程,仅是总结个人学习过程,可能存在纰漏,如有错误之处欢迎留言告知,非常感谢

在图形界面下,可以:
使用文本框对象(TextField) 获取用户输入的数据。
使用标签对象(Label)或文本框对象输出数据。
使用命令按纽(Button)来执行命令。

Java Application需要首先创建自己的图形界面.
• 通过创建一个Frame创建自己的用户界面,在构建AppFrame时,设定
该Frame的大小,并用setVisible(true)方法显示出来

add(xxxx) 加入对象
btn.addActionListener
• 处理事件
actionPerformed()函数
• 具体处理事件

在Java8中可以简写为
e->{ … } 拉Lambda表达式

• 在init()中
add(xxxx) 加入对象
btn.addActionListener
• 处理事件
• actionPerformed()函数
• 具体处理事件

三个条件:
是Applet的派生;
含有main();
在main()中创建一个用户界面,并将这个Applet加入.

java8实现

package classWork;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;


public class AppAppletInOut extends JApplet
{
	public static void main( String args[] )
	{
		JFrame frame = new JFrame();
		AppAppletInOut app = new AppAppletInOut();
		app.init();
		frame.getContentPane().add( app );
		frame.setSize( 400,100 );  //界面大小
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  //窗口的关闭按钮
		frame.setVisible(true);  //让他显示出来(就是下面的图片)
	}

	JTextField in = new JTextField(10);   //表示输入方框的长度
	JButton btn = new JButton("求平方");  //按钮和按钮上的文本
	JLabel out = new JLabel("用于显示结果的标签"); //emmm

	public void init()
	{
		setLayout( new FlowLayout() );
		//add() 添加对象
		add( in ); //去掉没输入
		add( btn ); //去掉没按钮点击 求平方
		add( out ); //去掉没输出
		//.addActionListener是监听功能 
		// e->{}按钮兼事件监听器
		//{}里是我们按了按钮之后的处理。
		btn.addActionListener( e->{
			String s = in.getText();  
			double d = Double.parseDouble( s );
			double sq = d * d;  
			out.setText( d + "的平方是:" + sq );  //显示出答案
		});
	}
}

在这里插入图片描述
在这里插入图片描述

java7,6等写法

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

public class AppGraphInOut
{
	public static void main( String args[] )
	{
		new AppFrame();
	}
}

class  AppFrame extends JFrame
{
	JTextField in = new JTextField(10);
	JButton btn = new JButton("求平方");
	JLabel out = new JLabel("用于显示结果的标签");

	public AppFrame()
	{
		setLayout( new FlowLayout() );
		getContentPane().add( in );
		getContentPane().add( btn );
		getContentPane().add( out );
		btn.addActionListener( new BtnActionAdapter() );
		setSize( 400,100 );
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setVisible(true);
	}

	class BtnActionAdapter implements ActionListener
	{
		public void actionPerformed( ActionEvent e )
		{
			String s = in.getText();
			double d = Double.parseDouble( s );
			double sq = d * d;
			out.setText( d + "的平方是:" + sq );
		}
	}
}

笔记做在注释里了。

所听的课是唐大仕老师的课,课上听不懂,做下笔记。

/*
	A basic extension of the java.applet.Applet class
 */

import java.awt.*;
import java.applet.*;

public class AutoScore extends Applet
{
	public void init()
	{
		// Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
		//symantec.itools.lang.Context.setApplet(this);
	
		//{{INIT_CONTROLS
		setLayout(null);  //人工布局
		setSize(380,266);  
		btnNew.setLabel("出题");
		add(btnNew);
		btnNew.setBackground(java.awt.Color.lightGray); //文本添加到界面里面
		btnNew.setBounds(36,96,98,26);
		button2.setLabel("判分");
		add(button2);
		button2.setBackground(java.awt.Color.lightGray);
		button2.setBounds(216,96,94,25);
		lblA.setText("text");
		add(lblA);
		lblA.setFont(new Font("Dialog", Font.PLAIN, 24));
		lblA.setBounds(36,24,36,36);
		lblOp.setText("text");
		add(lblOp);
		lblOp.setFont(new Font("Dialog", Font.PLAIN, 24));
		lblOp.setBounds(72,24,36,36);
		lblB.setText("text");
		add(lblB);
		lblB.setFont(new Font("Dialog", Font.PLAIN, 24));
		lblB.setBounds(108,24,33,36);
		label5.setText("=");
		add(label5);
		label5.setFont(new Font("Dialog", Font.PLAIN, 24));
		label5.setBounds(168,24,34,36);
		add(txtAnswer);
		txtAnswer.setFont(new Font("Dialog", Font.PLAIN, 24));
		txtAnswer.setBounds(216,24,85,42);
		listDisp.setFont(new Font("Dialog", Font.PLAIN, 16));
		add(listDisp);
		listDisp.setBounds(36,144,272,106);
		//}}
	
		//{{REGISTER_LISTENERS
		SymAction lSymAction = new SymAction();
		btnNew.addActionListener(lSymAction);  //添加事件注册
		button2.addActionListener(lSymAction);

		//btnNew.addActionListener(this);

		btnNew.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent event)
			{
				//...
			}
		});
		button2.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(java.awt.event.ActionEvent event)
			{
				//...
			}
		});



		//}}
	}
	
	//{{DECLARE_CONTROLS
	java.awt.Button btnNew = new java.awt.Button();  //按钮
	java.awt.Button button2 = new java.awt.Button();
	java.awt.Label lblA = new java.awt.Label();  //标签显示
	java.awt.Label lblOp = new java.awt.Label();
	java.awt.Label lblB = new java.awt.Label();
	java.awt.Label label5 = new java.awt.Label();
	java.awt.TextField txtAnswer = new java.awt.TextField();  //文本框表输入
	java.awt.List listDisp = new java.awt.List(0);  //列表框 表示显示正确与错误答案
	//}}

	class SymAction implements java.awt.event.ActionListener  //动作监听
	{
		public void actionPerformed(java.awt.event.ActionEvent event)  //监听接口
		{
			Object object = event.getSource();
			if (object == btnNew)
				btnNew_ActionPerformed(event);
			else if (object == button2)
				button2_ActionPerformed(event);
		}
	}

	void btnNew_ActionPerformed(java.awt.event.ActionEvent event)
	{
		// to do: code goes here.
		a = (int)(Math.random()*9+1);
		b = (int)(Math.random()*9+1);
		int c = (int)(Math.random()*4);
		switch( c )
		{
		    case 0: op="+"; result=a+b; break;
		    case 1: op="-"; result=a-b; break;
		    case 2: op="*"; result=a*b;break;
		    case 3: op="/"; result=a/b;break;
		}
		lblA.setText(""+a);
		lblB.setText(""+b);
		lblOp.setText(""+op);
		txtAnswer.setText("");
	    
			 
	}
	
	int a=0,b=0;
	String op="";
	double result=0;

	void button2_ActionPerformed(java.awt.event.ActionEvent event)
	{
		// to do: code goes here.
		String str = txtAnswer.getText();  //得到用户输入
		double d = Double.valueOf(str).doubleValue(); //把字符串转成实数
		String disp = "" + a + op + b+"="+ str +" ";
		if( d == result ) disp += "☆";
		else disp += "╳";
		
		listDisp.add( disp );
	}

	public static void main(String [] args)
	{
		Frame f = new Frame();
		f.setSize( 400,300 );
		AutoScore p = new AutoScore();
		f.add ( p );
		p.init();
		p.start();
		f.setVisible( true );
	}

}



在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值