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 }