001    import javax.swing.*;
002    import org.gui.*;
003    import java.io.*;
004    import java.beans.*;
005    import java.awt.*;
006    import java.awt.event.*;
007    import java.net.*;
008    import javax.swing.event.*;
009    import javax.swing.text.html.*;
010    
011    public class Main___GUI{
012    
013            public static void main(String[] args) throws Exception {
014    
015                    final JTextPane tp = new JTextPane();
016                    final JTextField tf = new JTextField();
017    
018                    GUITool.tryToSetSystemLookAndFeel();
019                    JFrame frame_tmp = null;
020                    
021                    JButton button = new JButton("test");
022                    button.addActionListener(new ActionListener(){
023                            public void actionPerformed(ActionEvent e){
024                                    System.out.println("test");
025                            }
026                    });
027                    JPanel contentpane = new JPanel(new BorderLayout());
028                    contentpane.add(button, BorderLayout.NORTH);
029                    contentpane.add(new JScrollPane(tp), BorderLayout.CENTER);
030                    tp.setEditable(false);
031                    tp.addHyperlinkListener(new HyperlinkListener(){
032                            public void hyperlinkUpdate(HyperlinkEvent e) {
033                                    if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
034                                            JEditorPane pane = (JEditorPane) e.getSource();
035                                            if (e instanceof HTMLFrameHyperlinkEvent) {
036                                                    HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;
037                                                    HTMLDocument doc = (HTMLDocument)pane.getDocument();
038                                                    doc.processHTMLFrameHyperlinkEvent(evt);
039                                            } else {
040                                                    try {
041                                                            pane.setPage(e.getURL());
042                                                            tf.setText(e.getURL().toString());
043                                                    } catch (Throwable t) {
044                                                            t.printStackTrace();
045                                                    }
046                                            }
047                                    }
048                            }
049                    });
050                    tf.addActionListener(new ActionListener(){
051                            public void actionPerformed(ActionEvent e) {
052                                    try{
053                                            tp.setPage(((JTextField)e.getSource()).getText());
054                                    }catch(Exception exc){
055                                            exc.printStackTrace();
056                                    }
057                            }
058                    });
059                    contentpane.add(tf, BorderLayout.SOUTH);
060                    
061                    frame_tmp = new JFrame();
062                    frame_tmp.setContentPane(contentpane);
063                    frame_tmp.pack();
064                    final String config_file_name = ".GUITool_frame_state.xml";
065    
066                    try{
067                            XMLDecoder decoder = new XMLDecoder(new FileInputStream(config_file_name));
068                            Rectangle bounds = (Rectangle)decoder.readObject();
069                            frame_tmp.setBounds(bounds);
070                            String url_text = (String)decoder.readObject();
071                            tf.setText(url_text);
072                            tp.setPage(new URL(url_text));
073                    }catch(Exception e){
074                            e.printStackTrace();
075                    }
076                    
077                    frame_tmp.setVisible(true);
078                    final JFrame frame = frame_tmp;
079                    frame.addWindowListener(new WindowAdapter(){
080                            @Override
081                            public void windowClosing(WindowEvent e) {
082                                    try{
083                                            XMLEncoder encoder = new XMLEncoder(new FileOutputStream(config_file_name));
084                                            encoder.writeObject(frame.getBounds());
085                                            encoder.writeObject(tf.getText());
086                                            encoder.flush();
087                                            encoder.close();
088                                    }catch(Exception exc){
089                                            exc.printStackTrace();
090                                    }
091                                    System.exit(0);
092                            }
093                    });
094    
095                    
096                    
097                    File[] file = GUITool.openFiles(null, "open");
098                    for(int i=0;i<file.length;i++)
099                            JOptionPane.showMessageDialog(null, file[i].getAbsolutePath());
100            }
101    }