import java.awt.*; import java.awt.event.*; import java.util.Random; import java.util.Date; import java.net.URL; import java.text.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.AttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import com.zfqjava.swing.*; import com.zfqjava.swing.cell.*; public class HyperlinkDemo extends JDataGridBean { public HyperlinkDemo() { super(); configure(); } private void configure() { final JDataGrid dataGrid = getDataGrid(); dataGrid.setModel(createModel()); dataGrid.setRowHeight(0, 40); // dataGrid.putClientProperty("JDataGrid.generateHyperlinkEventForURLValue", Boolean.FALSE); final JButton a = new JButton("Restore Model..."); a.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dataGrid.setModel(createModel()); } }); getToolBar(JDataGridBean.MAIN_TOOLBAR).add(a); final JToggleButton b = new JToggleButton("Toggle modifier"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Boolean bool = (b.isSelected() ? Boolean.TRUE : Boolean.FALSE); dataGrid.putClientProperty("JDataGrid.activateLinkOnModifierDown", bool); } }); getToolBar(JDataGridBean.MAIN_TOOLBAR).add(b); } protected DataGridModel createModel() { DataGridModel model = new DefaultDataGridModel(99, 26); // LargeDataGridModel model = new LargeDataGridModel(Character.MAX_VALUE, 256); // demo attributes SimpleAttributeSet attr = null; URL homePage = null; try { homePage = new URL("http://www.zfqjava.com"); } catch(Exception e) {} URL javaPage = null; try { javaPage = new URL("http://www.java.com"); } catch(Exception e) {} CellStyle.Hyperlink homePageLink = new CellStyle.Hyperlink(homePage, null, null); CellStyle.Hyperlink javaPageLink = new CellStyle.Hyperlink(javaPage, null, null); for(int i=0; i<10; i++) { model.setValueAt("JDataGrid", i, 0); attr = new SimpleAttributeSet(); CellStyle.setHyperlink(attr, homePageLink); model.setCellAttributes(attr, i, 0); } for(int i=0; i<10; i++) { model.setValueAt("Java", i, 1); attr = new SimpleAttributeSet(); CellStyle.setHyperlink(attr, javaPageLink); model.setCellAttributes(attr, i, 1); } return model; } public static void main(String[] args) { final HyperlinkDemo demo = new HyperlinkDemo(); demo.setDefaultCloseOperation(JBean.EXIT_ON_CLOSE); SwingUtilities.invokeLater(new Runnable() { public void run() { demo.showFrame(); demo.getDataGrid().requestFocus(); } }); } }