⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jxhyperlinkdemopanel.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * $Id: JXHyperlinkDemoPanel.java,v 1.17 2005/10/12 08:48:11 kleopatra Exp $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. */package org.jdesktop.demo.swingx;import java.net.MalformedURLException;import java.net.URL;import javax.swing.Action;import javax.swing.DefaultListModel;import javax.swing.ImageIcon;import javax.swing.JScrollPane;import javax.swing.ListModel;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableModel;import org.jdesktop.demo.DemoPanel;import org.jdesktop.swingx.EditorPaneLinkVisitor;import org.jdesktop.swingx.JXHyperlink;import org.jdesktop.swingx.JXList;import org.jdesktop.swingx.JXTable;import org.jdesktop.swingx.LinkModel;import org.jdesktop.swingx.action.LinkAction;import com.jgoodies.forms.builder.PanelBuilder;import com.jgoodies.forms.layout.CellConstraints;import com.jgoodies.forms.layout.FormLayout;/** * Demonstrates the JXHyperlink component. * * @author Richard Bair * @author Jeanette Winzenburg *  */public class JXHyperlinkDemoPanel extends DemoPanel {    //---------------- demo views        private JXTable table;    private JXList list;    private JXHyperlink textOnlyHyperlink;        //---------------- models    private EditorPaneLinkVisitor linkVisitor;    /** Creates new form JXHyperlinkDemoPanel */    public JXHyperlinkDemoPanel() {        setName("JXHyperlink Demo");        initLinkVisitor();        initComponents();        configureComponents();        build();    }    private void initLinkVisitor() {        // the link visitor - the action which is triggered on clicking the link        linkVisitor = new EditorPaneLinkVisitor();    }    private void configureComponents() {        TableModel commonModel = createTableModel();        table.setModel(commonModel);        table.setDefaultLinkVisitor(linkVisitor);        table.setColumnControlVisible(true);        table.packAll();        list.setModel(createListModel(commonModel));        list.setLinkVisitor(linkVisitor);        LinkAction textOnly = createLinkAction("SwingX", "https://swingx.dev.java.net");        textOnlyHyperlink.setAction(textOnly);//        textOnly.putValue(Action.SMALL_ICON, new ImageIcon(getClass().getResource("/org/jdesktop/demo/swingx/resources/duke_thumbsup.gif")));    }//------------------------ create models        private TableModel createTableModel() {        DefaultTableModel model = new DefaultTableModel(new Object[] { "Description", "LinkModel"}, 0) {            public Class getColumnClass(int column) {                return getValueAt(0, column).getClass();            }        };        model.addRow(new Object[] {"not existing", createLink("Nirvana", "http://www.nirvana.all") });        model.addRow(new Object[] {"local resource", new LinkModel("Bike me!", null,getClass().getResource("resources/test.html")) });        model.addRow(new Object[] {"external resource", createLink("SwingX", "https://swingx.dev.java.net")});        model.addRow(new Object[] {"closed", createLink("Heaven", "http://www.hell.all") });        return model;    }    private ListModel createListModel(TableModel tableModel) {        int linkColumn = -1;        for (int i = 0; i < tableModel.getColumnCount(); i++) {            if (LinkModel.class == tableModel.getColumnClass(i)) {                linkColumn = i;                break;            }        }        DefaultListModel model = new DefaultListModel();        for (int i = 0; i < tableModel.getRowCount(); i++) {            LinkModel link = (LinkModel) tableModel.getValueAt(i, linkColumn);            model.addElement(new LinkModel(link.getText(), null, link.getURL()));        }         return model;    }    /** This method is called from within the constructor to     * initialize the form.     */    private void initComponents() {        // a link-aware JTable        table = new JXTable();                // a link-aware JList        list = new JXList();                textOnlyHyperlink = new JXHyperlink();    }        private void build() {     //        COLUMN SPECS://            f:d:n, l:7dluX:n, f:d:g//            ROW SPECS:   //            c:d:n, t:4dluY:n, c:d:n, t:7dluY:n, f:d:g, t:7dluY:n, c:d:n////            COLUMN GROUPS:  {}//            ROW GROUPS:     {}////            COMPONENT CONSTRAINTS//            ( 1,  1,  1,  1, "d=f, d=c"); javax.swing.JLabel      "linkTable"; name=linkTableLabel//            ( 3,  1,  1,  1, "d=f, d=c"); javax.swing.JLabel      "outputPane"; name=outputPaneLabel//            ( 1,  3,  1,  1, "d=f, d=c"); de.kleopatra.view.JButton; name=textButton//            ( 3,  3,  1,  5, "d=f, d=f"); javax.swing.JScrollPane; name=outputPane//            ( 1,  5,  1,  1, "d=f, d=f"); javax.swing.JScrollPane; name=linkTable//            ( 1,  7,  1,  1, "d=f, d=c"); javax.swing.JScrollPane; name=linkList//        FormLayout formLayout = new FormLayout(                "f:d:n, l:7dlu:n, f:d:g", // columns                "c:d:n, t:4dlu:n, c:d:n, t:7dlu:n, f:d:g, t:7dlu:n, c:d:n"); // rows        PanelBuilder builder = new PanelBuilder(this, formLayout);        builder.setDefaultDialogBorder();        CellConstraints cc = new CellConstraints();        CellConstraints cl = new CellConstraints();                builder.addLabel("Links: ", cl.xywh(1, 1, 1, 1),                 textOnlyHyperlink, cc.xywh(1,  3,  1,  1));        builder.addLabel("Link Content: ", cl.xywh(3, 1, 1, 1),                 new JScrollPane(linkVisitor.getOutputComponent()), cc.xywh(3,  3,  1,  5));        builder.add(new JScrollPane(table), cc.xywh(1, 5,  1,  1) );        builder.add(new JScrollPane(list), cc.xywh(1, 7, 1, 1));    }    private LinkAction createLinkAction(String description, String urlString) {        LinkModel swingXLink = createLink(description, urlString);        LinkAction textOnly = new LinkAction(swingXLink);        textOnly.setVisitingDelegate(linkVisitor);        return textOnly;    }    private LinkModel createLink(String description, String urlString) {        try {            return new LinkModel(description, null, new URL(urlString));        } catch (MalformedURLException e) {            // ignore - something went wrong        }        return null;    }//---------------------- override super        public String getHtmlDescription() {        return "<html>" +                "<b>JXHyperlink component </b> - is a button which " +                "by default looks like a classic HTML link element. " +                "The button is typically configured with a LinkAction  " +                "which guarantees to stay in synch with an underlying LinkModel object. " +                "A LinkAction can be configured with a link visitor - that's an" +                "actionListener which tries to visit the link. " +                "There are predefined link visitors: " +                "<ul>" +                "<li> EditorPaneLinkVisitor tries to connect to the link url and show its" +                " content in the contained EditorPane." +                "<li> ApplicationLinkVisitor (in jdnc-api) tries to use the context " +                " dependent default browser/output to show the link url " +                "(TODO: not working)." +                "</ul>" +                "<b>Hyperlink in collective views </b> - are supported for JX/Tree/Table, " +                " JXList, (TODO: JXTree) which have a rolloverEnabled property (disabled by default)." +                " Internal collaborators: " +                "<ul>" +                "<li> LinkRenderer/LinkEditor using a JXHyperlink to show/visit a LinkModel." +                "<li> RolloverProducer/LinkController tracking mouseEvents to trigger " +                " rollover effects, re-/setting the link cursor and visit a LinkModel." +                "</ul>" +                "</html>";    }    public String getName() {        return "Hyperlinks";    }        public String getInformationTitle() {        return "JXHyperlink";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -