Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 2" -> 31

Технологии профаммирования на Java 2 Книга 2 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 2 — М.: Бином-Пресс, 2003. — 468 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220032.pdf
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 204 >> Следующая

14 import javax.swing.text.*; 15
16 public class ClientGUI extends JFrame ( 17
18 // надпись JLabel для отображения состояния соединения
19 private JLabel statusBar;
22 23 24 25 26 27
31 32 33 34 35
41
46 47 48 49
50 51 52 53 54 55 56 57 58 59 60 61
64
65
/I текстовые области JTextArea для отображения и ввода сообщений private JTextArea messageArea; private JTextArea inputArea;
// действия для подключения и отключения менеджера // MessageManager и отправки сообщений private Action connectAction; private Action disconnectAction; private Action sendAction;
II имя пользователя userName, добавляемого к исходящим сообщениям private String userName = "";
Il менеджер MessageManager для взаимодействия с сервером MessageManager messageManager;
11 слушатель MessageListener при приема новых сообщений MessageListener messageListener;
// конструктор ClientGUI
public ClientGUI( MessageManager manager )
{
super ( "Deitel Messenger" messageManager = manager;
);
messageListener = new MyMessageListener0;
I/ создание действий connectAction = new ConnectAction(); disconnectAction = new DisconnectActionO; disconnectAction.setEnabled( false ); sendAction = new SendAction(); sendAction.setEnabled( false );
Il настройка меню File JMenu fileMenu = new JMenu ( "File" ); fileMenu.setMnemonic( 1F1 ); fileMenu.add( connectAction ); fileMenu. add ( disconnectAction );
11 настройка панели меню JMenuBar и присоединение меню File JMenuBar menuBar = new JMenuBar(); menuBar. add ( fileMenu ); setJMenuBar( menuBar );
Удаленный вызов методов
67
66
67 // настройка панели инструментов JToolBar
68 JToolBar tooIBaг = new JToolBar();
69 toolBar.addf, connectAction ) ;
70 toolBar.addf disconnectAction );
71 I/ создание текстовой области JTextArea
72 /I для отображения сообщений
73 messageArea = new JTextArea( 15, 15 ); 74
75 I/ запрет редактирования и переноса слов в конце строки
76 messageArea.setEditable( false );
77 messageArea.setLineWrap( true );
78 messageArea.setWrapStyleWord( true ); 79
80 JPanel panel = new JPanel();
81 panel.setLayout ( new BorderLayout< 5, 5 ) );
82 panel.add( new JScrollPane( messageArea ),
83 BorderLayout. CENTER );
84 I/ создание текстовой области JTextArea
85 /I для ввода новых сообщений
86 inputArea = new JTextArea( 3, 15 );
87 inputArea.setLineWrap( true );
88 inputArea.setWrapStyleWord( true );
89 inputArea.setEditablet false );
90 I/ связывание клавиши Enter в компоненте inputArea
91 Il с действием sendAction
92 Keymap кеуМар = inputArea.getKeymap();
93 Keystroke enterKey = Keystroke.getKeyStroke(
94 KeуEvent.VK_ENTER, 0 );
95 keyHap.addActionForKeyStroke( enterKey, sendAction ); 96
97 // размещение кнопок inputArea и sendAction в панели BoxLayout
98 Il и добавление компонента Box в панель messagePanel
99 Box box = new Box ( BoxLayout.X-AXIS );
100 box.add( new JScrollPane( inputArea ) );
101 box.add( new JButton( sendAction ) ); 102
103 panel.add( box, BorderLayout.SOUTH ); 104
105 Il создание надписи statusBar с рамкой
106 statusBar = new JLabel( "Not Connected" );
107 statusBar.setBorder(
108 new BevelBorder( BevelBorder. LOWERED ) ); 109
110 II размещение компонентов
111 Container container = getContentPane();
112 container.add( toolBar, BorderLayout.NORTH );
113 container.add( panel, BorderLayout.CENTER );
114 container.add( statusBar, BorderLayout.SOUTH ); 115
116 Il отключение и выход при закрытии окна пользователем
117 addWindowListener{ 118
119 new WindowAdapter() (
120
121 II отключение MessageManager при закрытии окна
68
Глава 2
)
public void windowClosing( WindowEvent event } {
Il отключение от сервера try {
messageManager.disconnect( messageListener );
// обработка исключения при отключении от сервера catch ( Exception exception ) { exception.printstackTrace();
Щщії ' - «>AA**«**
System.exit( О ); } /I конец метода windowClosing } Il конец внутреннего класса WindowAdapter
} // конец конструктора ClientGOI
// действия для соединения с сервером
private class ConnectAction extends AbstractAction {
Il настройка действия ConnectAction public ConnectAction{)
{
>
putValue( Action.NAME, "Connect" ); putValue( Action.SMALL_lCON, new Imagelcon(
ClientGUI. class.gotResource( "images/Connect.gif" ) ) ) ; putValue( Action.SHORT_DESCRIPTI0N,
"Connect to Server" ); putValue( Action.LONG_DESCRIPTION,
"Connect to server to send Instant Messages" ); putValue( Action.MNEMONIC_KEY, new Integer( 1C ) );
If соединение с сервером
public void actionPerformed( ActionEvent event ) {
/I соединение MessageManager с сервером try {
Il очистка области messageArea messageArea.setText( "" ); II подключение MessageManager и регистрация слушателя Il MessageListener
messageManager.connect( messageListener );
II прослушивание уведомлений об отключении messageManager.setPisconnectListener( new DisconnectHandler () ),-
Il получение имени пользователя uaerName userName = JOptionPane.showlnputDialog(
Удаленный вызов методов
69
178 ClientGOI.this, "Please enter your name: " );
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100