PihatonttuMain.java
上传用户:kyckim
上传日期:2007-12-11
资源大小:332k
文件大小:4k
源码类别:

通讯/手机编程

开发平台:

Java

  1. package Pihatonttu;
  2. import org.jdesktop.jdic.tray.*;
  3. import javax.swing.*;
  4. import java.awt.event.*;
  5. public class PihatonttuMain implements ActionListener {
  6. static final String proxyName = "Pihatonttu Proxy";
  7. static final String version = "2007-07-14";
  8. static PihatonttuMain pihatonttuMain;
  9. static LogFrame logFrame;
  10. static Server server;
  11. static SystemTray tray = SystemTray.getDefaultSystemTray();
  12. static TrayIcon trayIcon;
  13. static final ImageIcon normalIcon = new ImageIcon(ClassLoader.getSystemResource("images/tray.gif"));
  14. static final ImageIcon connectedIcon = new ImageIcon(ClassLoader.getSystemResource("images/traycon.gif"));
  15. static String com;
  16. static String proxy;
  17. PihatonttuMain(String com, String proxy){
  18. JPopupMenu menu;
  19. JMenuItem menuItem;
  20. this.com = com;
  21. this.proxy = proxy;
  22. try {
  23. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  24. } catch (Exception e) {
  25. showErrorDialog("Cannnot create GUI.");
  26. }
  27. if( Integer.parseInt(System.getProperty("java.version").substring(2,3)) >=5 )
  28. System.setProperty("javax.swing.adjustPopupLocationToFit", "false");
  29. menu = new JPopupMenu("A Menu");
  30. menuItem = new JMenuItem("Abort Connection");
  31. menuItem.addActionListener(this);
  32. menu.add(menuItem);
  33. menuItem = new JMenuItem("Clear Log");
  34. menuItem.addActionListener(this);
  35. menu.add(menuItem);
  36. menu.addSeparator();
  37. menuItem = new JMenuItem("About");
  38. menuItem.addActionListener(this);
  39. menu.add(menuItem);
  40. menuItem = new JMenuItem("Quit");
  41. menuItem.addActionListener(this);
  42. menu.add(menuItem);
  43. trayIcon = new org.jdesktop.jdic.tray.TrayIcon(normalIcon, "Pihatonttu Proxy", menu);
  44. trayIcon.setIconAutoSize(true);
  45. trayIcon.addActionListener(new ActionListener() {
  46. public void actionPerformed(ActionEvent e) {
  47. logFrame.showLog();
  48. }
  49. });
  50. tray.addTrayIcon(trayIcon);
  51. logFrame = new LogFrame();
  52. logFrame.addElement(proxyName + " (" + version + ") started.");
  53. logFrame.showLog();
  54. server = new Server(com, proxy);
  55. server.start();
  56. }
  57. public void actionPerformed(ActionEvent e) {
  58. JMenuItem source = (JMenuItem) (e.getSource());
  59. String s = source.getText();
  60. if (s.equalsIgnoreCase("Abort Connection")) {
  61. try {
  62. server.exitServer();
  63. logFrame.addElement("Restarting...");
  64. Thread.sleep(3*1000);
  65. server = new Server(com, proxy);
  66. server.start();
  67. logFrame.addElementFraction("Restarting... Done.");
  68. } catch(InterruptedException ie) {
  69. }
  70. }
  71. if (s.equalsIgnoreCase("Clear Log")) {
  72. logFrame.clear();
  73. logFrame.addElement(proxyName + " (" + version + ") started.");
  74. }
  75. if (s.equalsIgnoreCase("About")) {
  76. showAboutDialog();
  77. }
  78. if(s.equalsIgnoreCase("Quit")) {
  79. logFrame.addElement(proxyName + " stopped");
  80. server.exitServer();
  81. try {
  82. Thread.sleep(1*1000);
  83. } catch(InterruptedException ie) {
  84. }
  85. System.exit(0);
  86. }
  87. }
  88. public static void showErrorDialog(String error) {
  89. JOptionPane.showMessageDialog(null, error, "Problem occured",JOptionPane.ERROR_MESSAGE);
  90. }
  91. public static void showAboutDialog() {
  92. JOptionPane.showMessageDialog(null,
  93. proxyName + " (" + version + ") nnCreated 2007 by Hiisi (hiisi.proxy@gmail.com)nVisit http://hiisi-proxy.blogspot.com/ for details.",
  94. "About Pihatonttu Proxy", JOptionPane.INFORMATION_MESSAGE);
  95. }
  96. public static void togleIcon(boolean state) {
  97. if(state) {
  98. trayIcon.setIcon(connectedIcon);
  99. } else {
  100. trayIcon.setIcon(normalIcon);
  101. }
  102. }
  103. public static void main(String[] args) {
  104. new PihatonttuMain(args[0], args[1]);
  105. }
  106. }