每日一练

关于DataOutputStream和DataInputStream的练习
package com.jimzhai.datastream;
import java.io.*;
public class DataStream {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ByteArrayOutputStream mybyte = new ByteArrayOutputStream();
		DataOutputStream mydata = null;
		
		mydata = new DataOutputStream(mybyte);
		try {
			mydata.writeDouble(Math.random());
			ByteArrayInputStream myInbyte = new ByteArrayInputStream(mybyte.toByteArray());
			DataInputStream myIn = new DataInputStream(myInbyte);
			System.out.println(0.2356896d);
			mydata.flush();
			mydata.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

关于JFrame以及事件监听的练习

package com.java;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JFrametest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new ActionDemo();
	}

}
class ActionDemo extends JFrame{
	
	JTextField jtfName;//在此输入姓名
	JTextArea jtaChat;//显示聊天信息
	JTextArea jtaInput;//输入聊天信息
	JButton jbSend;//发送消息按钮
	JButton jbClear;//清除输入消息框中的内容
	public ActionDemo(){//构造器
		super("Hello win");//调用父类构造函数(给程序添加标题)
		Container container = getContentPane();//得到容器
		JPanel panel = new JPanel();//从初始化面板
		jtfName = new JTextField(10);//初始化名字输入域
		panel.add(new JLabel("主题:Write Once,Run Anywhere!      "));//增加聊天标签
		panel.add(jtfName);//加入名字输入域
		container.add(panel,BorderLayout.NORTH);//在容器上上增加面板
		jtaChat = new JTextArea();//初始化信息显示文本框
		container.add(new JScrollPane(jtaChat),BorderLayout.CENTER);//添加信息显示文本框
		Box box = new Box(BoxLayout.X_AXIS);//初始化一个Box
		jtaInput = new JTextArea(3,20);//初始化消息输入域
		jbSend = new JButton();//初始化发送按钮
		jbClear = new JButton();//初始化清除按钮
		jbClear.setText("清除");//设置按钮文本
		box.add(new JScrollPane(jtaInput));//增加消息输入域
		box.add(jbClear);//增加按钮
		box.add(jbSend);
		
		container.add(box,BorderLayout.SOUTH);//在容器上增加Box
		jbClear.addActionListener(new ActionListener(){//清除按钮的事件监听
			public void actionPerformed(ActionEvent e){
				jtaInput.setText("");
			}
		});
		
		Action sendMessage = new AbstractAction(){//发送消息Action
			public void actionPerformed(ActionEvent e){
				replaceMessage();//更新消息显示框
			}
		};
		jtaInput.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),"send");//接受回车事件
		jtaInput.getActionMap().put("send",sendMessage);//回车事件的处理(调用发送消息Action)
		jbSend.setAction(sendMessage);//设置命令为发送消息
		jbSend.setText("发送");//设置按钮文本
		setVisible(true);//设置窗口可视
		setSize(400,200);//设置窗口大小
		setLocation(300,300);//设置窗口显示位置
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭程序时退出窗口
	}
		private void replaceMessage(){
			String message = jtfName.getText()+">"+jtaInput.getText()+"\n";//得到消息文本
			jtaChat.insert(message,jtaChat.getDocument().getLength());//插入消息到显示区域末端
			jtaInput.setText("");//清空输入消息域
		}
}

效果图:


BoxLayout:

X_AXIS
指定组件应该从左到右放置。

Y_AXIS
指定组件应该从上到下放置。

Box

public class Box
   
   
    
    extends 
    
    JComponent
   
   
   
   
    
    implements 
    
    Accessible
   
   

使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。Box 提供几个对使用 BoxLayout 的容器(甚至非 Box 容器)有用的类方法。

Box 类可以创建几种影响布局的不可见组件:glue、struts 和 rigid 区域。如果 Box 包含的所有组件都有一个固定大小,可以使用 glue 组件(由 createGlue 返回)来控制组件的位置。如果想让两个组件之间有一个固定的空间量,可以尝试使用 strut(createHorizontalStrutcreateVerticalStrut)。如果需要一个总是占用相同空间量的不可见组件,可以通过调用 createRigidArea 获得。

今天的收获:

今天开始复习线程,不过感觉忘得差不多了!压力啊。

今天的不足:

对事件监听的复习力度还是不够。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值