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

📄 adventuredemo.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
字号:
/* * BindingDemoForm.java * * Created on January 10, 2005, 1:55 PM */package org.jdesktop.demo.adventure;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.text.NumberFormat;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFormattedTextField;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.text.DefaultFormatterFactory;import javax.swing.text.NumberFormatter;import org.jdesktop.dataset.DataSet;import java.io.File;import javax.swing.JList;import javax.swing.JMenuBar;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;//import org.jdesktop.binding.BindingFactory;import org.jdesktop.dataset.DataRelation;import org.jdesktop.dataset.DataRelationTable;import org.jdesktop.demo.DemoPanel;import org.jdesktop.demo.MainWindow;import org.jdesktop.swingx.JXFrame;import org.jdesktop.swingx.JXImagePanel;import org.jdesktop.swingx.JXTitledPanel;import org.jdesktop.swingx.util.WindowUtils;/** * * @author  Richard Bair */public class AdventureDemo extends JXFrame {	/**	 * Comment for <code>serialVersionUID</code>	 */	private static final long serialVersionUID = 3544670668122894901L;		private DataSet ds;    private JTextField nameTF;    private JTextField locationTF;    private JFormattedTextField priceTF;    private JTextArea descriptionTA;    private JXImagePanel imagePanel;    private JList navigator;    private JTextField catNameTF;    private JTable activitiesTBL;      /** Creates new form BindingDemoForm */    public AdventureDemo() {        //construct the DataSet, and loads it with data        createDataSet();                //init the gui components        initComponents();                //bind the gui components//        navigator.setDataSource(ds.getTable("package"));//        navigator.setDataField("name");//        //        nameTF.setDataSource(ds.getTable("package"));//        nameTF.setDataField("name");////        locationTF.setDataSource(ds.getTable("package"));//        locationTF.setDataField("location");//        //        BindingFactory.bind(priceTF, ds.getTable("package"), "price");//        //        descriptionTA.setDataSource(ds.getTable("package"));//        descriptionTA.setDataField("description");//        //        BindingFactory.bind(imagePanel, ds.getTable("package"), "imageuri");//        //        activitiesTBL.setDataSource(ds.getTable("activitiesDetail"));//        activitiesTBL.setDataField("");    }            /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    private void initComponents() {        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        setTitle("Adventure Builder 2.1");        //use a border layout for the content pane        JPanel contentPane = new JPanel(new GridBagLayout());        setContentPane(contentPane);        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);        splitPane.setBorder(BorderFactory.createEmptyBorder());        contentPane.add(splitPane, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(11, 11, 12, 12), 0, 0));                JXTitledPanel navigatorPanel = new JXTitledPanel("Packages");        navigator = new JList();        //ok, this part is just for fun :)//        navigator.setCellRenderer(new DefaultListCellRenderer() {//        	Map<String,ImageIcon> cachedImages = new HashMap<String,ImageIcon>();//            public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {//            	JLabel lbl = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);//            	String imageurl = (String)packageDS.getFieldValue("IMAGEURI", index);//            	if (!cachedImages.containsKey(imageurl)) {//            		//scale the image and stuff it in the cache//            		try {//            			ImageIcon icon = new ImageIcon(new URL(imageurl));//            			icon = new ImageIcon(icon.getImage().getScaledInstance(16, 16, 0));//            			cachedImages.put(imageurl, icon);//            		} catch (Exception e) {//            			e.printStackTrace();//            		}//            	}//            	lbl.setIcon(cachedImages.get(imageurl));//            	return lbl;//            }//        });        JScrollPane navSP = new JScrollPane(navigator);        navSP.setBorder(BorderFactory.createEmptyBorder());        navigatorPanel.setContentContainer(navSP);        splitPane.setLeftComponent(navigatorPanel);                JSplitPane detailSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);        detailSplitPane.setBorder(BorderFactory.createEmptyBorder());        detailSplitPane.setTopComponent(createPackageDetail());        detailSplitPane.setBottomComponent(createActivitiesDetail());        detailSplitPane.setDividerLocation(250);                splitPane.setRightComponent(detailSplitPane);                JButton saveButton = new JButton("Save");        saveButton.setMnemonic('S');        saveButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                saveButtonActionPerformed(evt);            }        });        JButton refreshButton = new JButton("Refresh");        refreshButton.setMnemonic('R');        refreshButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                refreshButtonActionPerformed(evt);            }        });//        contentPane.add(ButtonBarFactory.buildRightAlignedBar(saveButton, refreshButton), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0, 11, 12, 12), 0, 0));                setSize(new Dimension(800, 600));        setLocation(WindowUtils.getPointForCentering(this));    }           private JXTitledPanel createPackageDetail() {        //builder for creating the detail pane        JPanel detailsPanel = new JPanel(new GridBagLayout());        imagePanel = new JXImagePanel();        imagePanel.setBorder(BorderFactory.createEmptyBorder());        detailsPanel.add(imagePanel, new GridBagConstraints(0, 0, 1, 4, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0));                nameTF = new JTextField();        detailsPanel.add(new JLabel("Name"), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));        detailsPanel.add(nameTF, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(12, 12, 0, 11), 0, 0));        locationTF = new JTextField();        detailsPanel.add(new JLabel("Location"), new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));        detailsPanel.add(locationTF, new GridBagConstraints(2, 1, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));        priceTF = new JFormattedTextField();		NumberFormat amountDisplayFormat = NumberFormat.getCurrencyInstance();		amountDisplayFormat.setMinimumFractionDigits(2);		NumberFormat amountEditFormat = NumberFormat.getNumberInstance();		priceTF.setFormatterFactory(new DefaultFormatterFactory(			new NumberFormatter(amountDisplayFormat),			new NumberFormatter(amountDisplayFormat),			new NumberFormatter(amountEditFormat)));        detailsPanel.add(new JLabel("Price"), new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));        detailsPanel.add(priceTF, new GridBagConstraints(2, 2, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));        catNameTF = new JTextField();//        detailsPanel.add(new JLabel("Category"), new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));//        detailsPanel.add(catNameTF, new GridBagConstraints(2, 3, 1, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(5, 12, 0, 11), 0, 0));        descriptionTA = new JTextArea();        detailsPanel.add(new JLabel("Description"), new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 0, 0, 0), 0, 0));        detailsPanel.add(new JScrollPane(descriptionTA), new GridBagConstraints(2, 3, 1, 1, 1.0, 1.0, GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(5, 12, 11, 11), 0, 0));                JXTitledPanel detailPanel = new JXTitledPanel("Package Details");        detailPanel.setContentContainer(detailsPanel);        return detailPanel;    }        private JXTitledPanel createActivitiesDetail() {        JXTitledPanel activitiesPanel = new JXTitledPanel("Activities");        activitiesTBL = new JTable();//        activitiesTBL.setEvenRowBackground(Color.WHITE);//        activitiesTBL.setOddRowBackground(new Color(0xd2dfee));//        activitiesTBL.setHasColumnControl(true);        activitiesTBL.setShowHorizontalLines(false);//        activitiesTBL.getTable().setSortable(true);        activitiesTBL.setBorder(BorderFactory.createEmptyBorder());//        activitiesTBL.getTable().setDefaultRenderer(String.class, new DefaultTableCellRenderer() {//            private JXImagePanel imagePanel = new JXImagePanel();//            public Component getTableCellRendererComponent(javax.swing.JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {//                if (value instanceof String && ((String)value).startsWith("http://") && ((String)value).endsWith(".gif")) {//                    try {////                        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);//                        ImageIcon ii = new ImageIcon(new URL((String)value));//                        System.out.println(ii.getIconWidth());//                        System.out.println(ii.getImageLoadStatus() == java.awt.MediaTracker.COMPLETE);//                        imagePanel.setIcon(ii);//                        return imagePanel;//                    } catch (Exception e) {//                        e.printStackTrace();//                    }//                }//                return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);//            }//            //        });        activitiesPanel.getContentContainer().setLayout(new BorderLayout());        activitiesPanel.getContentContainer().add(activitiesTBL, BorderLayout.CENTER);        return activitiesPanel;    }    private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshButtonActionPerformed//    	conn.setConnected(false);        ds.readXml(new File("/home/rb156199/dataset.xml"));            }//GEN-LAST:event_refreshButtonActionPerformed    private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed//    	conn.setConnected(true);        System.out.println(ds.writeXml());    }//GEN-LAST:event_saveButtonActionPerformed        private void createDataSet() {    	ds = DataSet.createFromSchema(getClass().getResourceAsStream("resources/dataset.xsd"));        DataRelation packageToCategory = ds.createRelation();    	packageToCategory.setName("packageToCategory");    	packageToCategory.setParentColumn(ds.getTable("package").getColumn("catid"));    	packageToCategory.setChildColumn(ds.getTable("category").getColumn("catid"));    	    	DataRelation packageToActivityList = ds.createRelation();    	packageToActivityList.setName("packageToActivityList");    	packageToActivityList.setParentColumn(ds.getTable("package").getColumn("packageid"));    	packageToActivityList.setChildColumn(ds.getTable("activityList").getColumn("packageid"));                DataRelationTable activityListDetails = ds.createRelationTable();        activityListDetails.setName("activityListDetails");        activityListDetails.setRelation(packageToActivityList);        activityListDetails.setParentSelector(ds.getTable("package").getSelector("current"));                DataRelation activityListToActivity = ds.createRelation();        activityListToActivity.setName("activityListToActivity");        activityListToActivity.setParentColumn(ds.getTable("activityList").getColumn("activityid"));        activityListToActivity.setChildColumn(ds.getTable("activity").getColumn("activityid"));                DataRelationTable categoryDetail = ds.createRelationTable();        categoryDetail.setName("categoryDetail");        categoryDetail.setRelation(packageToCategory);        categoryDetail.setParentSelector(ds.getTable("package").getSelector("current"));                DataRelationTable activitiesDetail = ds.createRelationTable();        activitiesDetail.setName("activitiesDetail");        activitiesDetail.setRelation(activityListToActivity);        activitiesDetail.setParentTable(ds.getTable("activityListDetails"));        ds.readXml(getClass().getResourceAsStream("resources/dataset.xml"));    }        public static void main(String[] args) {//        MainWindow.main(new String[]{"-d", "org.jdesktop.demo.adventure.AdventureDemo"});        new AdventureDemo().setVisible(true);    }}

⌨️ 快捷键说明

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