Mercurial > hg > Database > Alice
diff src/main/java/alice/test/chat/ChatWindow.java @ 601:30f2c04571c2 dispose
add chat, add Star topology to topology manager&node
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 27 Apr 2016 16:28:10 +0900 |
parents | |
children | 8a9fd716c335 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/alice/test/chat/ChatWindow.java Wed Apr 27 16:28:10 2016 +0900 @@ -0,0 +1,55 @@ +package alice.test.chat; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * Created by e125769 on 3/29/16. + */ +public class ChatWindow extends CodeSegment{ + + public JTextArea textArea; + public Receiver name = ids.create(CommandType.PEEK); + + public ChatWindow(){ + name.setKey("local","userName"); + } + + @Override + public void run() { + JFrame mainFrame = new JFrame("Chat"); + mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + mainFrame.setSize(300, 500); + mainFrame.setLocationRelativeTo(null); + Container contentPane = mainFrame.getContentPane(); + + textArea = new JTextArea(5,0); + JScrollPane scrollPane = new JScrollPane(textArea); + + final JTextField textField = new JTextField(); + textField.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + send("(" + name+ ") " + textField.getText() + "\n"); + textField.setText(""); + } + }); + + contentPane.add(scrollPane, BorderLayout.CENTER); + contentPane.add(textField, BorderLayout.SOUTH); + mainFrame.setVisible(true); + } + + public void show(String message){ + textArea.append(message); + } + + public void send(String message){ + ods.put("sendMessage", message); + } +}