⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmschat.java

📁 java 和flex的整合,主要是spring和flex的整合,不可多得啊
💻 JAVA
字号:
/* * Copyright 2002-2009 the original author or authors. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *   http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.springframework.flex.samples.jmschat;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.jms.Connection;import javax.jms.DeliveryMode;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.Topic;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextArea;import javax.swing.JTextField;import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.command.ActiveMQMapMessage;/** *  * @author Christophe Coenraets * @author Jeremy Grelle */public class JMSChat implements MessageListener, ActionListener {    private final String url = "tcp://localhost:61616";    private Connection connection;    private Session session;    private Topic topic;    private MessageProducer producer;    private final JTextField tfUser;    private final JTextField tfMessage;    private final JTextArea taChat;    public static void main(String args[]) {        new JMSChat();    }    public JMSChat() {        try {            ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(this.url);            this.connection = factory.createConnection();            this.session = this.connection.createSession(false, Session.AUTO_ACKNOWLEDGE);            this.topic = this.session.createTopic("sampletopic.flex.jms.chat");            MessageConsumer consumer = this.session.createConsumer(this.topic);            consumer.setMessageListener(this);            this.producer = this.session.createProducer(this.topic);            this.producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);            this.connection.start();        } catch (JMSException e) {            e.printStackTrace();        }        // Build user interface        JFrame frame = new JFrame("JMS Chat");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        this.taChat = new JTextArea();        frame.getContentPane().add(this.taChat, BorderLayout.CENTER);        Box north = new Box(BoxLayout.X_AXIS);        north.add(new JLabel("User Name:"));        this.tfUser = new JTextField();        north.add(this.tfUser);        frame.getContentPane().add(north, BorderLayout.NORTH);        Box south = new Box(BoxLayout.X_AXIS);        south.add(new JLabel("Message:"));        this.tfMessage = new JTextField();        south.add(this.tfMessage);        JButton btSend = new JButton("Send");        btSend.addActionListener(this);        south.add(btSend);        frame.getContentPane().add(south, BorderLayout.SOUTH);        int width = 300;        int height = 300;        frame.setSize(width, height);        frame.setVisible(true);    }    public void onMessage(Message object) {        try {            ActiveMQMapMessage message = (ActiveMQMapMessage) object;            String userId = message.getString("userId");            String msg = message.getString("chatMessage");            this.taChat.append(userId + ": " + msg + "\n");        } catch (JMSException e) {            e.printStackTrace();        }    }    public void actionPerformed(ActionEvent event) {        try {            MapMessage message = this.session.createMapMessage();            message.setString("userId", this.tfUser.getText());            message.setString("chatMessage", this.tfMessage.getText());            this.producer.send(message);        } catch (JMSException e) {            e.printStackTrace();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -