substanc对swing的灵活换肤

    技术2022-05-11  64

    /* * LookFeelJInternalFrame.java * */

    package alljava;import javax.swing.*;import  java.util.jar.*;import java.util.*;/** *本例程实现能过substanc挂接实现对swing的灵活换肤 */public class LookFeelJInternalFrame extends javax.swing.JInternalFrame {    static LookFeelJInternalFrame lookFeelWindow=null;        public static void main(String args[]){      JFrame.setDefaultLookAndFeelDecorated(true);         openLookFeelWindow();                    }         public static void  openLookFeelWindow(){        if (lookFeelWindow == null){              javax.swing.JFrame jf=new JFrame("NetJava.org换肤演示");               jf.pack();            lookFeelWindow = new LookFeelJInternalFrame();            jf.add(lookFeelWindow);            jf.setVisible(true);             jf.setSize(800,600);        }        lookFeelWindow.pack();        lookFeelWindow.setVisible(true);        lookFeelWindow.show();        lookFeelWindow.moveToFront();        lookFeelWindow.requestFocus();        try{            lookFeelWindow.setSelected(true);        }catch ( java.beans.PropertyVetoException e){           System.out.println("open error: "+e);        }    }        /** Creates new form LookFeelJInternalFrame */    public LookFeelJInternalFrame() {            initComponents();            //加入titlePainter             listTitlePainter.add("org.jvnet.substance.title.ClassicTitlePainter");             listTitlePainter.add("org.jvnet.substance.title.Glass3DTitlePainter");             listTitlePainter.add("org.jvnet.substance.title.RandomCubesTitlePainter");            try{                //加入sun的lookfeel                  listJava.add("javax.swing.plaf.metal.MetalLookAndFeel");                  listJava.add("com.sun.java.swing.plaf.motif.MotifLookAndFeel");                  listJava.add("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");                  listJava.add("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");

     initSubstanceLookFeel();jComboBoxJavaSkin.setModel(new javax.swing.DefaultComboBoxModel(listJava.toArray()));jComboBox2SubSkin.setModel(new javax.swing.DefaultComboBoxModel(listSkin.toArray()));jComboBoxSubTheme.setModel(new javax.swing.DefaultComboBoxModel(listTheme.toArray()));jComboBoxSubLookFeel.setModel(new javax.swing.DefaultComboBoxModel(listLookAndFeel.toArray()));jComboBoxMark.setModel(new javax.swing.DefaultComboBoxModel(listTitleWatermark.toArray()));jListGradientPainter.setListData(listGradientPainter.toArray());

     }catch(Exception ef){                  ef.printStackTrace();            System.out.println("create Look Feel error: "+ef);        }       }   

        /** 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.     */    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">                              private void initComponents() {        buttonGroup1 = new javax.swing.ButtonGroup();        jComboBoxJavaSkin = new javax.swing.JComboBox();        jLabel1 = new javax.swing.JLabel();        jComboBox2SubSkin = new javax.swing.JComboBox();        jLabel2 = new javax.swing.JLabel();        jLabel3 = new javax.swing.JLabel();        jComboBoxSubTheme = new javax.swing.JComboBox();        jLabel4 = new javax.swing.JLabel();        jComboBoxSubLookFeel = new javax.swing.JComboBox();        jLabel5 = new javax.swing.JLabel();        jSeparator1 = new javax.swing.JSeparator();        jRadioButton1 = new javax.swing.JRadioButton();        jScrollPane1 = new javax.swing.JScrollPane();        jListGradientPainter = new javax.swing.JList();        jLabel6 = new javax.swing.JLabel();        jRadioButton2 = new javax.swing.JRadioButton();        jRadioButton3 = new javax.swing.JRadioButton();        jLabel7 = new javax.swing.JLabel();        jLabel8 = new javax.swing.JLabel();        jComboBoxMark = new javax.swing.JComboBox();        jPanel1 = new javax.swing.JPanel();        jSliderWaterMark = new javax.swing.JSlider();        jTextField1 = new javax.swing.JTextField();        jCheckBox1 = new javax.swing.JCheckBox();        jButton1 = new javax.swing.JButton();

            setBorder(javax.swing.BorderFactory.createMatteBorder(1, 2, 1, 2, new java.awt.Color(0, 0, 0)));        setClosable(true);        setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);        setTitle("/u9009/u62e9/u6362/u80a4");        jComboBoxJavaSkin.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jComboBoxJavaSkin.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jComboBoxJavaSkinActionPerformed(evt);            }        });

            jLabel1.setText("JDK/u9009/u9879/uff1a");

            jComboBox2SubSkin.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jComboBox2SubSkin.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jComboBox2SubSkinActionPerformed(evt);            }        });

            jLabel2.setText("Substance/u9009/u9879/uff1a");

            jLabel3.setText("Skin /uff1a");

            jComboBoxSubTheme.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jComboBoxSubTheme.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jComboBoxSubThemeActionPerformed(evt);            }        });

            jLabel4.setText("Theme /uff1a");

            jComboBoxSubLookFeel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jComboBoxSubLookFeel.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jComboBoxSubLookFeelActionPerformed(evt);            }        });

            jLabel5.setText("Look Feel/uff1a");

            buttonGroup1.add(jRadioButton1);        jRadioButton1.setText("ClassicTitlePainter");        jRadioButton1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));        jRadioButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jRadioButton1ActionPerformed(evt);            }        });

            jListGradientPainter.setBorder(javax.swing.BorderFactory.createTitledBorder(""));        jListGradientPainter.setModel(new javax.swing.AbstractListModel() {            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };            public int getSize() { return strings.length; }            public Object getElementAt(int i) { return strings[i]; }        });        jListGradientPainter.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);        jListGradientPainter.setDoubleBuffered(true);        jListGradientPainter.addListSelectionListener(new javax.swing.event.ListSelectionListener() {            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {                jListGradientPainterValueChanged(evt);            }        });        jListGradientPainter.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jListGradientPainterMouseClicked(evt);            }        });

            jScrollPane1.setViewportView(jListGradientPainter);

            jLabel6.setText("Title Painter/uff1a");

            buttonGroup1.add(jRadioButton2);        jRadioButton2.setText("Glass3DTitlePainter");        jRadioButton2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));        jRadioButton2.setMargin(new java.awt.Insets(0, 0, 0, 0));        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jRadioButton2ActionPerformed(evt);            }        });

            buttonGroup1.add(jRadioButton3);        jRadioButton3.setText("RandomCubesTitlePainter");        jRadioButton3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));        jRadioButton3.setMargin(new java.awt.Insets(0, 0, 0, 0));        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jRadioButton3ActionPerformed(evt);            }        });

            jLabel7.setText("Gradient/uff1a");

            jLabel8.setText("Watermark/uff1a");

            jComboBoxMark.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jComboBoxMark.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jComboBoxMarkActionPerformed(evt);            }        });

            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Test"));        jSliderWaterMark.setMajorTickSpacing(1);        jSliderWaterMark.setMaximum(10);        jSliderWaterMark.setPaintLabels(true);        jSliderWaterMark.setPaintTicks(true);        jSliderWaterMark.setValue(0);        jSliderWaterMark.setAutoscrolls(true);        jSliderWaterMark.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {            public void mouseDragged(java.awt.event.MouseEvent evt) {                jSliderWaterMarkMouseDragged(evt);            }        });        jSliderWaterMark.addChangeListener(new javax.swing.event.ChangeListener() {            public void stateChanged(javax.swing.event.ChangeEvent evt) {                jSliderWaterMarkStateChanged(evt);            }        });        jSliderWaterMark.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jSliderWaterMarkMouseClicked(evt);            }            public void mouseEntered(java.awt.event.MouseEvent evt) {                jSliderWaterMarkMouseEntered(evt);            }        });        jSliderWaterMark.addVetoableChangeListener(new java.beans.VetoableChangeListener() {            public void vetoableChange(java.beans.PropertyChangeEvent evt)throws java.beans.PropertyVetoException {                jSliderWaterMarkVetoableChange(evt);            }        });

            jTextField1.setText("www.NetJava.org");

            jCheckBox1.setText("jCheckBox1");        jCheckBox1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));        jCheckBox1.setMargin(new java.awt.Insets(0, 0, 0, 0));

            jButton1.setText("jButton1");

            org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)            .add(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                    .add(jSliderWaterMark, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)                    .add(jCheckBox1)                    .add(jButton1)                    .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))                .addContainerGap())        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()                .addContainerGap()                .add(jCheckBox1)                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                .add(jButton1)                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 17, Short.MAX_VALUE)                .add(jSliderWaterMark, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 47, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                .addContainerGap())        );

            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)            .add(layout.createSequentialGroup()                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                    .add(layout.createSequentialGroup()                        .add(37, 37, 37)                        .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                        .add(12, 12, 12)                        .add(jComboBoxJavaSkin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 356, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))                    .add(layout.createSequentialGroup()                        .add(32, 32, 32)                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                            .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 439, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(layout.createSequentialGroup()                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                                    .add(layout.createSequentialGroup()                                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                                            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)                                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                                                    .add(jLabel5)                                                    .add(jLabel4)                                                    .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 63, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))                                                .add(jLabel8))                                            .add(jLabel7))                                        .add(13, 13, 13)                                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                                            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE)                                            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()                                                .add(3, 3, 3)                                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                                                    .add(jComboBox2SubSkin, 0, 358, Short.MAX_VALUE)                                                    .add(jComboBoxSubTheme, 0, 358, Short.MAX_VALUE)                                                    .add(jComboBoxSubLookFeel, 0, 358, Short.MAX_VALUE)))                                            .add(jComboBoxMark, 0, 361, Short.MAX_VALUE))                                        .add(12, 12, 12))                                    .add(layout.createSequentialGroup()                                        .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 120, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 320, Short.MAX_VALUE)))                                .add(5, 5, 5)))))                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                    .add(jLabel6)                    .add(layout.createSequentialGroup()                        .add(10, 10, 10)                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                            .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(jRadioButton1)                            .add(jRadioButton2)                            .add(jRadioButton3))))                .add(29, 29, 29))        );        layout.setVerticalGroup(            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)            .add(layout.createSequentialGroup()                .addContainerGap()                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                    .add(jLabel1)                    .add(jComboBoxJavaSkin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))                .add(16, 16, 16)                .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)                    .add(jLabel2)                    .add(jLabel6))                .add(14, 14, 14)                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                    .add(layout.createSequentialGroup()                        .add(jComboBoxSubLookFeel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                        .add(17, 17, 17)                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)                            .add(jComboBox2SubSkin, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(jLabel3)))                    .add(jLabel5)                    .add(layout.createSequentialGroup()                        .add(jRadioButton1)                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                        .add(jRadioButton2)                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)                        .add(jRadioButton3)))                .add(14, 14, 14)                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)                    .add(layout.createSequentialGroup()                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                            .add(jComboBoxSubTheme, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(jLabel4))                        .add(24, 24, 24)                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)                            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 78, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(jLabel7))                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 38, Short.MAX_VALUE)                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)                            .add(jComboBoxMark, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)                            .add(jLabel8)))                    .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))                .add(34, 34, 34))        );        pack();    }// </editor-fold>                       

        //select Mark:    private void jComboBoxMarkActionPerformed(java.awt.event.ActionEvent evt) {                                              // TODO add your handling code here:           // org.jvnet.substance.watermark.SubstanceImageWatermark.setOpacity(0.9f);      //  org.jvnet.substance.SubstanceLookAndFeel.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceImageWatermark");         org.jvnet.substance.SubstanceLookAndFeel.setCurrentWatermark((String)jComboBoxMark.getSelectedItem());         forRePaint();    }                                            

        private void jSliderWaterMarkMouseEntered(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:    }                                            

        private void jSliderWaterMarkMouseClicked(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:    }                                            

             private void jSliderWaterMarkMouseDragged(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:

        }                                            

        private void jSliderWaterMarkVetoableChange(java.beans.PropertyChangeEvent evt)throws java.beans.PropertyVetoException {                                                             }                                                        private void jSliderWaterMarkStateChanged(javax.swing.event.ChangeEvent evt) {                                              // TODO add your handling code here:     // System.out.println("current is: "+jSliderWaterMark.getValue());      jButton1.setText("Is: "+jSliderWaterMark.getValue());    }                                            

        private void jListGradientPainterMouseClicked(java.awt.event.MouseEvent evt) {                                                  // TODO add your handling code here:    }                                                

        private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                              // TODO add your handling code here:            org.jvnet.substance.SubstanceLookAndFeel.setCurrentTitlePainter(listTitlePainter.get(2).toString());             forRePaint();          }                                            

        private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                              // TODO add your handling code here:          org.jvnet.substance.SubstanceLookAndFeel.setCurrentTitlePainter(listTitlePainter.get(1).toString());          forRePaint();    }                                            

        private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              // TODO add your handling code here:                   org.jvnet.substance.SubstanceLookAndFeel.setCurrentTitlePainter(listTitlePainter.get(0).toString());        forRePaint();    }                                            

        private void jListGradientPainterValueChanged(javax.swing.event.ListSelectionEvent evt) {                                                  // TODO add your handling code here:        org.jvnet.substance.SubstanceLookAndFeel.setCurrentGradientPainter(jListGradientPainter.getSelectedValue().toString());           forRePaint();    }                                                          private void jComboBoxSubLookFeelActionPerformed(java.awt.event.ActionEvent evt) {                                                     // TODO add your handling code here:        try{

                UIManager.setLookAndFeel((String)jComboBoxSubLookFeel.getSelectedItem());          //    UIManager.setLookAndFeel("org.jvnet.substance.SubstanceLookAndFeel");         //   org.jvnet.substance.SubstanceLookAndFeel.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceImageWatermark");        }catch(Exception ef){             ef.printStackTrace();             JOptionPane.showMessageDialog(this, "第三方库换肤失败!"+ef.getMessage(), "错误!", JOptionPane.ERROR_MESSAGE);        }          forRePaint();    }                                                   

        private void jComboBoxSubThemeActionPerformed(java.awt.event.ActionEvent evt) {                                                  // TODO add your handling code here:         org.jvnet.substance.SubstanceLookAndFeel.setCurrentTheme((String)jComboBoxSubTheme.getSelectedItem());              forRePaint();    }                                                

        private void jComboBox2SubSkinActionPerformed(java.awt.event.ActionEvent evt) {                                                  // TODO add your handling code here:       org.jvnet.substance.SubstanceLookAndFeel.setSkin((String)jComboBox2SubSkin.getSelectedItem());       forRePaint();    }                                                 //选择了java lookFeel:    private void jComboBoxJavaSkinActionPerformed(java.awt.event.ActionEvent evt) {                                                  // TODO add your handling code here:        String tems=(String)jComboBoxJavaSkin.getSelectedItem();        tems.trim();        try{        UIManager.setLookAndFeel(tems);        forRePaint();        }catch(Exception ef){            ef.printStackTrace();             JOptionPane.showMessageDialog(this, "JDK换肤失败!"+ef.getMessage(), "错误!", JOptionPane.ERROR_MESSAGE);        }    }                                                

            public void forRePaint(){//        org.jvnet.substance.watermark.SubstanceFabricWatermark;//     org.jvnet.substance.SubstanceLookAndFeel.setCurrentWatermark( )             SwingUtilities.updateComponentTreeUI(this.getParent());    }         public  void  initSubstanceLookFeel(){        try{        java.util.jar.JarFile jf=new JarFile("E://substance.jar");        java.util.Enumeration<JarEntry>  em= jf.entries();        while(em.hasMoreElements()){          java.util.jar.JarEntry jre=em.nextElement();         String tems=jre.toString();         if(tems.startsWith("org/jvnet/substance/skin/")&&tems.endsWith("Skin.class")){              tems=replace(tems,".class","").trim();               tems=replace(tems,"/",".");             listSkin.add(tems);            // System.out.println("Skin ****: "+tems);         }          if(tems.startsWith("org/jvnet/substance/skin/")&&tems.endsWith("LookAndFeel.class")){              tems=replace(tems,".class","").trim();               tems=replace(tems,"/",".");             listLookAndFeel.add(tems);          //   System.out.println("LookAndFeel----: "+tems);         }          if(tems.startsWith("org/jvnet/substance/theme/")&&tems.endsWith("Theme.class")){             tems=replace(tems,".class","").trim();              tems=replace(tems,"/",".");             listTheme.add(tems);          //   System.out.println("Theme > > >: "+tems);         }          if(tems.startsWith("org/jvnet/substance/painter/")&&tems.endsWith("GradientPainter.class")){             tems=replace(tems,".class","").trim();              tems=replace(tems,"/",".");              listGradientPainter.add(tems);          //   System.out.println("Theme > > >: "+tems);         }         if(tems.startsWith("org/jvnet/substance/watermark/")&&tems.endsWith("Watermark.class")){             tems=replace(tems,".class","").trim();              tems=replace(tems,"/",".");              listTitleWatermark.add(tems);          //   System.out.println("Theme > > >: "+tems);         }      }        }catch(Exception ef){         JOptionPane.showMessageDialog(this, "无法找到换肤库!"+ef.getMessage(), "错误!", JOptionPane.ERROR_MESSAGE);       dispose();//关掉        }    }              static String   replace(java.lang.String strSource,                            java.lang.String strFrom,                            java.lang.String strTo) {       java.lang.String strDest = "";       int intFromLen = strFrom.length();       int intPos;       while ( (intPos = strSource.indexOf(strFrom)) != -1) {         strDest = strDest + strSource.substring(0, intPos);         strDest = strDest + strTo;         strSource = strSource.substring(intPos + intFromLen);       }       strDest = strDest + strSource;

           return strDest;  }

        private static List<String>  listTheme=new     ArrayList();    private static List<String>  listLookAndFeel=new     ArrayList();    private static List<String>  listSkin=new     ArrayList();    private static List<String>  listGradientPainter=new     ArrayList();    private static List<String>  listTitlePainter=new     ArrayList();     private static List<String>  listTitleWatermark=new     ArrayList();         private static List<String>  listJava=new     ArrayList();    // 变量声明 - 不进行修改                         private javax.swing.ButtonGroup buttonGroup1;    private javax.swing.JButton jButton1;    private javax.swing.JCheckBox jCheckBox1;    private javax.swing.JComboBox jComboBox2SubSkin;    private javax.swing.JComboBox jComboBoxJavaSkin;    private javax.swing.JComboBox jComboBoxMark;    private javax.swing.JComboBox jComboBoxSubLookFeel;    private javax.swing.JComboBox jComboBoxSubTheme;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JLabel jLabel5;    private javax.swing.JLabel jLabel6;    private javax.swing.JLabel jLabel7;    private javax.swing.JLabel jLabel8;    private javax.swing.JList jListGradientPainter;    private javax.swing.JPanel jPanel1;    private javax.swing.JRadioButton jRadioButton1;    private javax.swing.JRadioButton jRadioButton2;    private javax.swing.JRadioButton jRadioButton3;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JSeparator jSeparator1;    private javax.swing.JSlider jSliderWaterMark;    private javax.swing.JTextField jTextField1;    // 变量声明结束                       } 


    最新回复(0)