Java中Swing,IO,Tread简介教程 - 图文 联系客服

发布时间 : 星期六 文章Java中Swing,IO,Tread简介教程 - 图文更新完毕开始阅读67201c07bed5b9f3f90f1c44

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel topPanel = new JPanel();// 创建topPanel面板对象用来加添文本框 JPanel belowPanel = new JPanel();// 创建belowPanle面板对象用来添加按钮 topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS)); // 设置topPanel面板的布局管理器为以X轴为对齐方式的盒式布局 topPanel.setBorder(BorderFactory.createEmptyBorder(5, 10, 8, 10)); // 设置此面板的边框为空白边框 text = new JTextField(\);// 创建一个文本内容为\的文本域 text.setFont(new Font(\, Font.PLAIN, 25));// 设置文本域的字体 text.setHorizontalAlignment(JTextField.RIGHT); // 设置文本域的文本对齐方式为以右对齐 text.setEditable(false);// 设置文本域不可编辑 topPanel.add(text);// 将文本域添加到topPanel面板中 belowPanel.setLayout(new BorderLayout()); // 设置belowPanel面板的布局管理器边界布局 belowPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 8, 10)); JPanel bCenter = new JPanel();// 创建bCenter面板对象用来添加数字,运算符按钮 JPanel bRight = new JPanel();// 创建bRight面板对象用来添加清除和等号按钮 bCenter.setLayout(new GridLayout(4, 4, 5, 5)); // 设置bCenter的布局管理为4行4列的网格布局管理 bRight.setLayout(new GridLayout(2, 1, 5, 5)); bRight.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); JPanel bcTop = new JPanel();// 用来添加\←\和\符号按钮 bcTop.setLayout(new GridLayout(2, 1, 5, 5)); // 声明一个按钮数组,包括了该面板上的所有按钮 JButton[] button = { new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\), new JButton(\←\), new JButton(\), new JButton(\) }; for (int i = 0; i <= 17; i++) { bCenter.add(button[i]);// 将前17个按钮依次加入到bCenter面板上 if (i >= 16) bcTop.add(button[i]);// 将按钮添加到bcTop面板上 } bRight.add(bcTop);// 将bcTop面板添加到bRight面板上 bRight.add(button[18]);// 将最后一个按钮添加到bRight面板上 belowPanel.add(bCenter, BorderLayout.CENTER); // 将bCenter面板添加到belowPanel面板的中间区域 belowPanel.add(bRight, BorderLayout.EAST); // 将bRight面板添加到belowPanel面板的东方区域 this.add(topPanel, BorderLayout.NORTH);// 将topPanel面板添加到窗体的北方区域 this.add(belowPanel, BorderLayout.CENTER); // 将belowPanel面板添加到窗体的中间区域 for (int i = 0; i < button.length; i++) } button[i].addActionListener(this);//依次注册所有按钮 staticdoubleop1 = 0.0, op2 = 0.0;//记录2个操作数 staticintop = 0;//记录操作符 StringBuffer str = new StringBuffer();//创建字符缓存区以便在文本域显示数值 publicstaticvoid main(String[] args) { new TinyCalculatorDemo(); } publicvoid actionPerformed(ActionEvent e) { //重写的ActionListener接口的方法,这是真正处理事件的方法,并且按钮会以ActionEvent对象来调用此方法 String s = e.getActionCommand(); //e.getActionCommand()方法会返回调用此方法的事件对象上的有关指令,如该对象是个按钮,则返回按钮上的文字 if (s.equals(\)) {//\号的作用 op = 1;//记录操作符 op1 = (Double.parseDouble(text.getText().toString().trim())); //注意从JTextField中获得的是字符串需要转成双精度型 text.setText(text.getText().trim() + \); //设置JTextField上的文字 str.setLength(0);//字符缓存清空 } elseif (s.equals(\)) {//\号的作用 op = 2; op1 = (Double.parseDouble(text.getText().toString().trim())); text.setText(text.getText().trim() + \); str.setLength(0); } elseif (s.equals(\)) {//\号的作用 op = 3; op1 = (Double.parseDouble(text.getText().toString().trim())); text.setText(text.getText().trim() + \); str.setLength(0); } elseif (s.equals(\)) {//\号的作用 op = 4; op1 = (Double.parseDouble(text.getText().toString().trim())); text.setText(text.getText().trim() + \); str.setLength(0); } elseif (s.equals(\)) {//\号的作用 if (op == 0) { } else { switch (op) { case 1: op1 = (op1) + (op2);//进行加法运算 break; case 2: op1 = (op1) - (op2);//进行减法运算 break; case 3: op1 = (op1) * (op2);//进行乘法运算 break; case 4: op1 = (op1) / (op2);//进除法发运算 } } break; } text.setText(op1 + \); } str.setLength(0); } elseif (s.equals(\)) {//\号的作用 text.setText(\); str.setLength(0); } elseif (s.equals(\)) {//\号的作用 if (Double.parseDouble(text.getText()) > 0) text.setText(\ + text.getText()); elseif (Double.parseDouble(text.getText()) < 0) text.setText(text.getText().substring(1, text.getText().length())); } elseif (s.equals(\←\)) {//\←\号的作用 if (text.getText().length() == 1) {text.setText(\); str.setLength(0); } elseif (text.getText().equals(op1)); else text.setText(str.delete(str.length() - 1, str.length()) .toString()); } elseif (s.equals(\)) {//\。\号的作用 if (text.getText().toString().indexOf(\) > 0) { } if (text.getText().trim().equals(\)) { str.setLength(0); text.setText((str.append(\ + s)).toString()); } if (text.getText().toString().indexOf(\) < 0) { text.setText((str.append(s)).toString()); } } else { text.setText(str.append(s).toString().trim()); op2 = (Double.parseDouble(text.getText().toString().trim())); }

TinyCalculatorDemo.java运行结果(100+2的运行结果)

2 I/O输入输出

2.1 流及输入输出流概述

流是一组有序的书结局序列,根据操作的类型,可分为输入流和输出流。I/O流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。

输入流

InputStream类是字节输入输出的抽象类,是所有字节输入流的父类。该类中所有方法遇到错误是都会引发IOException异常。

输出流

OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。OutputStream类中的所有方法均返回void,在遇到错误时引发IOException异常。

2.2 File类

File类是java.io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建,删除,重命名文件等。

文件的创建与删除

用File类的不同构造方法可以创建一个文件对象,通过JDK文档可以查看构造方法,下面是一个创建和删除文件的实例(特别注意文件的绝对路径和相对路径)。

【CreateDeleteFile.java】 package com.iot.file;//此包为java文件地址 import java.io.*;//导入java.io包是需要用到此包中的File和IOException类 publicclass CreateDeleteFile { publicstaticvoid main(String[] args) { File file = newFile(\); // 在本目录下创建一个名称位NewFile.txt的文本文件对象