作者在 2016-06-12 22:05:21 发布以下内容
/dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (个人网页设计模板http://dkplus.iteye.com),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。/
import java.awt.;
import java.awt.event.;
import javax.swing.*;
//控件的相互控制与消息传递
public class ActionDemo extends JFrame{
JTextField jtfName; //名字输入域
JTextArea jtaChat; //显示聊天信息
JTextArea jtaInput; //输入消息
JButton jbSend; //发送消息按钮
JButton jbLink; //连接按牛
JButton jbUnlink; //断开按牛
public ActionDemo(){
super("控件的相互控制"); //调用父类构造函数
Container container=this.getContentPane(); //得到容器
JPanel p=new JPanel(); //初始化一个面板
jtfName=new JTextField(10); //初始化名字输入域
Box box1=new Box(BoxLayout.X_AXIS); //初始化一个Box
p.add(new JLabel("昵称:")); //增加昵称标签
p.add(jtfName); //增加名字输入域
box1.add(jbLink);
box1.add(jbUnlink);
container.add(p,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(); //初始化发送按钮
box.add(new JScrollPane(jtaInput)); //增加消息输入域
box.add(jbSend);
container.add(box,BorderLayout.SOUTH); //在容器上增加box
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("发送"); //设置按钮文本
this.setLocation(300,300);
setSize(400,200); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
private void replaceMessage(){
String message=jtfName.getText()+"> "+jtaInput.getText()+"\n"; //得到消息文本
jtaChat.insert(message,jtaChat.getDocument().getLength()); //插入消息到显示域未端
jtaInput.setText(""); //清空输入消息域
}
public static void main(String[] args){
new ActionDemo();
}
}