java 小程序解释

java 小程序解释,第1张

available()函数获取的是当前文件指针到文件末尾还有多少字节。

比如刚打开文件就调用 bis.available() 时,输出的是 1314 的话

bis.read()读取了一个字节,所以在调用bis.available()时就会输出 1313

import java.awt.BorderLayout

import java.awt.Container

import java.awt.GridLayout

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.JTextField

/**

* 计算器的界面

*/

public class JiSuan extends JFrame {

/** 版本信息ID */

private static final long serialVersionUID = 1L

/** 界面上按键的数字 */

private final String[] NUMBER = { "9", "8", "7", "6", "5", "4", "3", "2",

"1", "0", "+/-", "." }

/** 界面行的运算符号 */

private final String[] KEYS = { "/", "sqrt", "*", "%", "-", "1/x", "+", "=" }

/** 界面行的其他命令 */

private final String[] COMMAND = { "Backspace", "CE", "C" }

/** 界面行的存储命令名 */

private final String[] M = { " ", "MC", "MR", "MS", "M+" }

/** 数字按钮 */

private JButton number[] = new JButton[NUMBER.length]

/** 运算符按钮 */

private JButton keys[] = new JButton[KEYS.length]

/** 其他指令按钮 */

private JButton command[] = new JButton[COMMAND.length]

/** 存储功能按钮 */

private JButton m[] = new JButton[M.length]

/** 文本框,用于模拟计算器的显示屏 */

private JTextField jt = new JTextField("0")

/**

* 构造函数

*/

public JiSuan() {

Container container = getContentPane()// 获取显示容器

container.setLayout(new BorderLayout())// 设置容器的布局管理器

JPanel p1 = new JPanel()// 创建数字按钮面板

p1.setLayout(new GridLayout(4, 3))// 设置面板的布局管理器为GridLayout

// 循环添加数字按钮

for (int i = 0i <NUMBER.lengthi++) {

number[i] = new JButton(NUMBER[i])//创建一个按钮

p1.add(number[i])//将按钮添加到面板上

}

JPanel p2 = new JPanel(new BorderLayout())// 创建运算符按钮面板

p2.setLayout(new GridLayout(4, 2))// 设置面板的布局管理器为GridLayout

// 循环添加运算符按钮

for (int i = 0i <KEYS.lengthi++) {

keys[i] = new JButton(KEYS[i])//创建一个按钮

p2.add(keys[i])//将按钮添加到面板上

}

JPanel p3 = new JPanel(new BorderLayout())// 创建存储功能按钮面板

p3.setLayout(new GridLayout(4, 1))// 设置面板的布局管理器为GridLayout

// 循环添加存储功能按钮

for (int i = 0i <M.lengthi++) {

m[i] = new JButton(M[i])//创建一个按钮

p3.add(m[i])//将按钮添加到面板上

}

JPanel p4 = new JPanel(new BorderLayout())// 创建一个总的面板,将前面创建的3个面板加入到其中

p4.add(p3, BorderLayout.WEST)//加入存储功能按钮面板,在左边

p4.add(p1, BorderLayout.CENTER)//加入数字按钮面板,在中间

p4.add(p2, BorderLayout.EAST)//加入运算符按钮面板,在右边

JPanel p5 = new JPanel(new BorderLayout())// 创建其他功能按钮面板

p5.setLayout(new GridLayout(1, 3))// 设置面板的布局管理器为GridLayout

// 循环添加其他功能按钮

for (int i = 0i <COMMAND.lengthi++) {

command[i] = new JButton(COMMAND[i])//创建一个按钮

p5.add(command[i])//将按钮添加到面板上

}

JPanel p6 = new JPanel(new BorderLayout())// 创建一个总的面板,将前面创建的2个面板和用做屏幕的文本框加入到其中

p6.add(jt, BorderLayout.NORTH)// 加入文本框,在上面

p6.add(p5, BorderLayout.CENTER)//加入其他功能按钮面板,在中间

p6.add(p4, BorderLayout.SOUTH)// 加入上面创建的按钮总面板,在下面

container.add(p6, BorderLayout.EAST)//将完整的计算器界面加入显示容器中

container.add(new JButton("开发中..."), BorderLayout.CENTER)// 在显示容器中添加一个按钮,按钮文字为开发中...

}

/**

* 主函数入口

*

* @param args

*/

public static void main(String[] args) {

JiSuan ji = new JiSuan()// 创建一个计算器界面

ji.setTitle("窗口布局")// 设置TItle

ji.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)// 设置默认的关闭动作

ji.setSize(400, 200)// 设置计算器窗口的尺寸

ji.setVisible(true)// 将计算器界面显示出来

}

}

public class CalculatorA {

private JFrame jf

private JButton[] jbs

private JTextField jtf

private JButton clear

private double num1,num2,jieguo

private char c

/**

* 构造方法实例化属性

*

*/

public CalculatorA(){

jf=new JFrame("我的计算器v1.0")//定义窗口的title

jtf=new JTextField(20)//定义文本域 也就是计算器的输入和现实区域

clear=new JButton("clear")// 定义按钮

jbs=new JButton[16]//定义按钮数组

String str="123+456-789*0./="//此处用来批量创建数字和元素符号。

for(int i=0i<str.length()i++){//批量赋值。这样做使得定义按钮方便很多否则,你需要一个按钮一个按钮像上面的"clear"那样的定义

jbs[i]=new JButton(str.charAt(i)+"")

}

init()

addEventHandler()

// setFont()

// setColor()

showMe()

}

/**

* 布局图形界面

*

*/

public void init(){

// jf.setLayout(manager)

JPanel jp1=new JPanel()//定义面板,用来容纳上面的按钮文本域等组件

jp1.add(jtf)//将 文本域 让如面板中

JPanel jp2=new JPanel()//定义面板,用来容纳上面的按钮文本域等组件

jp2.setLayout(new GridLayout(4,4))//定义网格布局,类似html 的table一个4X4的格子,然后将计算的按钮放到这个面板中

for(int i=0i<16i++){

jp2.add(jbs[i])

}

JPanel jp3=new JPanel()//定义面板,用来容纳上面的按钮文本域等组件

jp3.add(clear)//将 清除按钮 让如面板中

jf.add(jp1,BorderLayout.NORTH)//将显示数据面板,使用边框布局,放置最顶端。

jf.add(jp2,BorderLayout.CENTER)//将显示计算按钮面板,使用边框布局,放置中间。

jf.add(jp3,BorderLayout.SOUTH)//将显示清除按钮面板,使用边框布局,放置最底端。

}

public void setFont(){

}

public void setColor(){

}

public void addEventHandler(){//创建监听事件,用来监听每一个按钮,当点击后需要触发什么事件。

ActionListener lis=new ActionListener(){

public void actionPerformed(ActionEvent e){

// TODO Auto-generated method stub

JButton jb=(JButton)e.getSource()//获取事件源

//String key=(String)e.getActionCommand()

String str =jb.getText().trim()//把字符串的首尾空格去掉!

//String str2=e.getActionCommand().trim()//返回事件源的文本内容

if("0123456789.".indexOf(str)!=-1){//如果是数字或点号

jtf.setText(jtf.getText()+str)//设置显示文本域,也就是你点击数字按钮,在显示文本域显示出你点击的值。

return

}

if("+-*/".indexOf(str)!=-1){//当点击运算按钮触发的事件

num1=Double.parseDouble(jtf.getText())//获取文本域的值并转换类型并暂时保存起来。

jtf.setText("")

c=str.charAt(0)

jtf.setText("")

return

}

if(str.equals("=")){//根据点击的按钮式"="号执行结算结果

num2=Double.parseDouble(jtf.getText())

// jtf.setText("")

switch(c){

case '+': jieguo=num1+num2break

case '-': jieguo=num1-num2break

case '*': jieguo=num1*num2break

case '/': jieguo=num1/num2break

}

jtf.setText(Double.toString(jieguo))//返回结算结果到显示文本域

return

}

if(e.getActionCommand().equals("clear")){

jtf.setText("")//清空显示文本域

return

}

}

}

for(int i=0i<jbs.lengthi++){

//为每个按钮加上监听类

jbs[i].addActionListener(lis)

}

clear.addActionListener(lis)

}

public void showMe(){

jf.pack()//调整此窗口的大小,以适合其子组件的首选大小和布局。

jf.setVisible(true)//设置窗口可见

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)//设置程序的退出按钮,退出即同时停止程序

}

public static void main(String[] args){//启动程序的入口

new CalculatorA()

}

}

这代码注释写的太累人了。小窗口费劲。给加点分吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8069146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存