1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.example.chat.client;
21
22 import java.awt.BorderLayout;
23 import java.awt.Frame;
24 import java.awt.HeadlessException;
25 import java.awt.event.ActionEvent;
26
27 import javax.swing.AbstractAction;
28 import javax.swing.BoxLayout;
29 import javax.swing.JButton;
30 import javax.swing.JCheckBox;
31 import javax.swing.JDialog;
32 import javax.swing.JLabel;
33 import javax.swing.JPanel;
34 import javax.swing.JTextField;
35
36
37
38
39
40
41
42 public class ConnectDialog extends JDialog {
43 private static final long serialVersionUID = 2009384520250666216L;
44
45 private String serverAddress;
46
47 private String username;
48
49 private boolean useSsl;
50
51 private boolean cancelled = false;
52
53 public ConnectDialog(Frame owner) throws HeadlessException {
54 super(owner, "Connect", true);
55
56 serverAddress = "localhost:1234";
57 username = "user" + Math.round(Math.random() * 10);
58
59 final JTextField serverAddressField = new JTextField(serverAddress);
60 final JTextField usernameField = new JTextField(username);
61 final JCheckBox useSslCheckBox = new JCheckBox("Use SSL", false);
62
63 JPanel content = new JPanel();
64 content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS));
65 content.add(new JLabel("Server address"));
66 content.add(serverAddressField);
67 content.add(new JLabel("Username"));
68 content.add(usernameField);
69 content.add(useSslCheckBox);
70
71 JButton okButton = new JButton();
72 okButton.setAction(new AbstractAction("OK") {
73 private static final long serialVersionUID = -2292183622613960604L;
74
75 public void actionPerformed(ActionEvent e) {
76 serverAddress = serverAddressField.getText();
77 username = usernameField.getText();
78 useSsl = useSslCheckBox.isSelected();
79 ConnectDialog.this.dispose();
80 }
81 });
82
83 JButton cancelButton = new JButton();
84 cancelButton.setAction(new AbstractAction("Cancel") {
85 private static final long serialVersionUID = 6122393546173723305L;
86
87 public void actionPerformed(ActionEvent e) {
88 cancelled = true;
89 ConnectDialog.this.dispose();
90 }
91 });
92
93 JPanel buttons = new JPanel();
94 buttons.add(okButton);
95 buttons.add(cancelButton);
96
97 getContentPane().add(content, BorderLayout.CENTER);
98 getContentPane().add(buttons, BorderLayout.SOUTH);
99 }
100
101 public boolean isCancelled() {
102 return cancelled;
103 }
104
105 public String getServerAddress() {
106 return serverAddress;
107 }
108
109 public String getUsername() {
110 return username;
111 }
112
113 public boolean isUseSsl() {
114 return useSsl;
115 }
116 }