| 
			
1   package samplecode;
2   
3   import java.awt.*;
4   import java.awt.event.*;
5   import javax.swing.*;
6   import java.util.jar.*;
7   import java.io.*;
8   import java.util.*;
9   
10  /**
11   * <p>Title: Font Names </p>
12   * <p>Description: This program shows how to read  the attirbutes
13   * <p> from a JAR manifest file</p>
14   * <p>Company: Developer's super Page.com</p>
15   */
16  
17  
18  public class SampleFrame extends JFrame {
19    JPanel contentPane;
20    BorderLayout borderLayout1 = new BorderLayout();
21    JPanel jpnlMain = new JPanel();
22    DefaultListModel model = new DefaultListModel();
23    JLabel jLabel1 = new JLabel();
24    JButton jButton2 = new JButton();
25    JTextArea jTextArea1 = new JTextArea();
26    JTextField jTextField1 = new JTextField();
27    JLabel jLabel2 = new JLabel();
28    JTextField jTextField2 = new JTextField();
29  
30    //Construct the frame
31    public SampleFrame() {
32      enableEvents(AWTEvent.WINDOW_EVENT_MASK);
33      try {
34        jbInit();
35      }
36      catch(Exception e) {
37        e.printStackTrace();
38      }
39    }
40  
41    //Component initialization
42    private void jbInit() throws Exception  {
43      contentPane = (JPanel) this.getContentPane();
44      contentPane.setLayout(borderLayout1);
45      this.setSize(new Dimension(475, 300));
46      this.setTitle("Jar Attribute Reader");
47      this.addHierarchyBoundsListener(new 
48  SampleFrame_this_hierarchyBoundsAdapter(this));
49      jpnlMain.setLayout(null);
50      contentPane.setMinimumSize(new Dimension(300, 300));
51      contentPane.setPreferredSize(new Dimension(300, 256));
52      jpnlMain.setDebugGraphicsOptions(0);
53      jpnlMain.setMinimumSize(new Dimension(400, 256));
54      jpnlMain.setPreferredSize(new Dimension(400, 256));
55      jpnlMain.addKeyListener(new SampleFrame_jpnlMain_keyAdapter(this));
56      jButton2.setBounds(new Rectangle(162, 232, 148, 34));
57      jButton2.setText("GetInfo");
58      jButton2.addActionListener(new SampleFrame_jButton2_actionAdapter(this));
59      jTextArea1.setText("jTextArea1");
60      jTextArea1.setBounds(new Rectangle(21, 8, 431, 176));
61      jLabel2.setText("File Name:");
62      jLabel2.setBounds(new Rectangle(33, 201, 55, 19));
63      jTextField2.setFont(new java.awt.Font("Dialog", 1, 11));
64      jTextField2.setText("jTextField2");
65      jTextField2.setBounds(new Rectangle(169, 195, 129, 28));
66      contentPane.add(jpnlMain, BorderLayout.CENTER);
67      jpnlMain.add(jTextArea1, null);
68      jpnlMain.add(jLabel2, null);
69      jpnlMain.add(jTextField2, null);
70      jpnlMain.add(jButton2, null);
71  
72    }
73  
74    //Overridden so we can exit when window is closed
75    protected void processWindowEvent(WindowEvent e) {
76      super.processWindowEvent(e);
77      if (e.getID() == WindowEvent.WINDOW_CLOSING) {
78        System.exit(0);
79      }
80    }
81  
82  
83    void jButton1_actionPerformed(ActionEvent e) {
84  
85  
86    }
87  
88    void jButton2_actionPerformed(ActionEvent e) {
89      try {
90           // used to append data in the for loop
91             String sData ="";
92  
93             // Open the JAR file give by the textfield
94            JarFile jarfile = new JarFile(jTextField2.getText());
95  
96  
97             // Get the manifest
98             Manifest manifest = jarfile.getManifest();
99  
100            // Get the main attributes in the manifest
101            Attributes attrs = (Attributes)manifest.getMainAttributes();
102 
103            // Enumerate each attribute
104            for (Iterator it=attrs.keySet().iterator(); it.hasNext(); ) {
105                // Get attribute name
106                Attributes.Name aName = (Attributes.Name)it.next();
107 
108                // Get attribute value
109                String aValue = attrs.getValue(aName);
110                sData+="Name=" + aName + " Value="+aValue+"\n";
111 
112            }
113             jTextArea1.setText(sData);
114        } catch (IOException e1) {
115        }
116 
117   }
118 
119 }
120 class SampleFrame_this_hierarchyBoundsAdapter extends 
121 java.awt.event.HierarchyBoundsAdapter {
122   SampleFrame adaptee;
123 
124   SampleFrame_this_hierarchyBoundsAdapter(SampleFrame adaptee) {
125     this.adaptee = adaptee;
126   }
127 
128 }
129 
130 
131 
132 class SampleFrame_jpnlMain_keyAdapter extends java.awt.event.KeyAdapter {
133   SampleFrame adaptee;
134 
135   SampleFrame_jpnlMain_keyAdapter(SampleFrame adaptee) {
136     this.adaptee = adaptee;
137   }
138 
139 }
140 
141 class SampleFrame_jButton2_actionAdapter implements java.awt.event.ActionListener {
142   SampleFrame adaptee;
143 
144   SampleFrame_jButton2_actionAdapter(SampleFrame adaptee) {
145     this.adaptee = adaptee;
146   }
147   public void actionPerformed(ActionEvent e) {
148     adaptee.jButton2_actionPerformed(e);
149   }
150 }
			 |