控件的相互控制与消息传递

作者在 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();
}
}

默认分类 | 阅读 13496 次
文章评论,共0条
游客请输入验证码
浏览98002次
文章分类
最新评论