| 1 package client; 8 9 import java.awt.*; 10 import java.awt.event.*; 11 import java.util.Properties ; 12 import java.rmi.RemoteException ; 13 import javax.naming.Context ; 14 import javax.naming.InitialContext ; 15 import javax.rmi.PortableRemoteObject ; 16 import javax.swing.*; 17 18 import ejb.Greeter; 19 import ejb.GreeterHome; 20 21 26 public class FortuneManager extends JFrame { 27 28 private JTextArea outPutArea; 29 private JButton addFortuneButton; 30 private JTextField addFortuneTF; 31 private JButton showFortuneButton; 32 private JButton showAllFortunesButton; 33 private JButton resetFortunesButton; 34 private Greeter greeter; 35 36 public FortuneManager() { 37 initGUI(); 38 initServerObjects(); 39 } 40 41 private void initServerObjects() { 42 try { 43 Properties props = new Properties (); 44 props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 45 props.setProperty(Context.PROVIDER_URL, "localhost:1099"); 46 Context ctx = new InitialContext (props); 47 Object ref = ctx.lookup("Greeter"); 48 GreeterHome home = (GreeterHome) PortableRemoteObject.narrow(ref, GreeterHome.class); 49 greeter = home.create(); 50 } catch (Exception e) { 51 e.printStackTrace(); 52 outPutArea.setText(e.toString()); 53 } 54 } 55 56 private void initGUI() { 57 this.setTitle("Fortune Manager"); 58 Container container = this.getContentPane(); 59 container.setLayout(new BorderLayout()); 60 61 container.add(inputPanel(), BorderLayout.NORTH); 62 container.add(outputPanel(), BorderLayout.CENTER); 63 container.add(actionPanel(), BorderLayout.SOUTH); 64 65 this.addWindowListener(new WindowCloser()); 66 } 67 68 private JPanel inputPanel() { 69 JPanel panel = new JPanel(); 70 panel.setLayout(new GridBagLayout()); 71 GridBagConstraints gbc = new GridBagConstraints(); 72 gbc.anchor = GridBagConstraints.WEST; 73 gbc.insets = new Insets(25, 15, 5, 5); 74 75 gbc.gridy = 0; 76 panel.add(addFortuneTF = new JTextField(30), gbc); 77 panel.add(addFortuneButton = new JButton("Add fortune"), gbc); 78 addFortuneButton.addActionListener(new AddFortuneAction()); 79 80 return panel; 81 } 82 83 private JPanel actionPanel() { 84 JPanel panel = new JPanel(); 85 panel.setLayout(new GridBagLayout()); 86 GridBagConstraints gbc = new GridBagConstraints(); 87 gbc.insets = new Insets(5, 5, 5, 5); 88 89 panel.add(showFortuneButton = new JButton("Show fortune"), gbc); 90 panel.add(showAllFortunesButton = new JButton("Show all fortunes"), gbc); 91 panel.add(resetFortunesButton = new JButton("Reset fortunes"), gbc); 92 showFortuneButton.addActionListener(new ShowFortuneAction()); 93 showAllFortunesButton.addActionListener(new ShowAllFortunesAction()); 94 resetFortunesButton.addActionListener(new ResetFortunesAction()); 95 return panel; 96 } 97 98 private JPanel outputPanel() { 99 JPanel panel = new JPanel(); 100 JScrollPane scrollPane = new JScrollPane(outPutArea = new JTextArea(20, 52)); 101 panel.add(scrollPane); 102 return panel; 103 } 104 105 private class AddFortuneAction implements ActionListener { 106 107 public void actionPerformed(ActionEvent e) { 108 outPutArea.append("\nAdding Fortune...\n"); 109 try { 110 greeter.addGreeting(addFortuneTF.getText()); 111 } catch (RemoteException e1) { 112 e1.printStackTrace(); 113 } 114 } 115 } 116 117 private class ShowFortuneAction implements ActionListener { 118 119 public void actionPerformed(ActionEvent e) { 120 outPutArea.append("\n"); 121 try { 122 outPutArea.append(greeter.getGreeting()); 123 } catch (RemoteException e1) { 124 e1.printStackTrace(); 125 } 126 } 127 } 128 129 private class ShowAllFortunesAction implements ActionListener { 130 131 public void actionPerformed(ActionEvent e) { 132 outPutArea.append("\n"); 133 try { 134 outPutArea.append(greeter.getAllGreetings().toString()); 135 } catch (RemoteException e1) { 136 e1.printStackTrace(); 137 } 138 } 139 } 140 141 private class ResetFortunesAction implements ActionListener { 142 143 public void actionPerformed(ActionEvent e) { 144 try { 145 greeter.removeAllGreetings(); 146 outPutArea.setText(""); 147 } catch (RemoteException e1) { 148 e1.printStackTrace(); 149 } 150 } 151 } 152 153 private class WindowCloser extends WindowAdapter { 154 155 public void windowClosing(WindowEvent e) { 156 setVisible(false); 157 dispose(); 158 System.exit(0); 159 } 160 } 161 162 public static void main(String [] args) { 163 FortuneManager fortuneManager = new FortuneManager(); 164 fortuneManager.setSize(600, 500); 165 fortuneManager.setLocation(100, 100); 166 fortuneManager.setVisible(true); 167 } 168 169 } 170 | Popular Tags |