2014-02-12 91 views
4

我是在Java中使用外觀和感覺的新手。我試圖將Seaglass的外觀和感覺添加到我正在處理的Java應用程序中,但我似乎無法弄清楚如何使用它。我發現其他人使用它,也有問題,雖然他們說已經修復了。Seaglass外觀和感覺Java Swing

這裏是我的Java代碼(我使用NetBeans 8.1測試版):

package pamsorganizer; 

import javax.swing.*; 
import java.awt.*; 
import javax.swing.UIManager; 

public class MainProgram extends JFrame { 

/** 
* Creates the Main Form for the General Program 
*/ 

public MainProgram() { 
    initComponents(); 
} 

/** 
* 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. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jTabbedPane1 = new javax.swing.JTabbedPane(); 
    jPanel1 = new javax.swing.JPanel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jLabel3 = new javax.swing.JLabel(); 
    jButton2 = new javax.swing.JButton(); 
    jButton3 = new javax.swing.JButton(); 
    jScrollPane1 = new javax.swing.JScrollPane(); 
    jPanel2 = new javax.swing.JPanel(); 
    jLabel1 = new javax.swing.JLabel(); 
    jScrollPane2 = new javax.swing.JScrollPane(); 
    jTable1 = new javax.swing.JTable(); 
    jMenuBar1 = new javax.swing.JMenuBar(); 
    jMenu1 = new javax.swing.JMenu(); 
    jMenuItem1 = new javax.swing.JMenuItem(); 
    jMenuItem2 = new javax.swing.JMenuItem(); 
    jSeparator1 = new javax.swing.JPopupMenu.Separator(); 
    jMenuItem3 = new javax.swing.JMenuItem(); 
    jMenu2 = new javax.swing.JMenu(); 
    jMenu3 = new javax.swing.JMenu(); 
    jMenu4 = new javax.swing.JMenu(); 
    jMenu6 = new javax.swing.JMenu(); 
    jMenu5 = new javax.swing.JMenu(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setTitle("Pamela Emerson's Organizer"); 

    jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N 
    jLabel2.setText("Welcome to the Organizer"); 

    jLabel3.setText("<html>\n<p>Welcome to the 's Organizer Application. A Project by James Emerson 2014. If you would like to receive some more benifits out of this application, please sign in or signup.</p>\n</html>"); 

    jButton2.setText("Signin"); 
    jButton2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton2ActionPerformed(evt); 
     } 
    }); 

    jButton3.setText("Signup"); 
    jButton3.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton3ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) 
       .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 583, Short.MAX_VALUE) 
       .addGroup(jPanel1Layout.createSequentialGroup() 
        .addComponent(jButton2) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
        .addComponent(jButton3) 
        .addGap(0, 0, Short.MAX_VALUE))) 
      .addContainerGap()) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(18, 18, 18) 
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jButton2) 
       .addComponent(jButton3)) 
      .addContainerGap(219, Short.MAX_VALUE)) 
    ); 

    jTabbedPane1.addTab("Home Tab", jPanel1); 

    jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N 
    jLabel1.setText("Calander"); 

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null} 
     }, 
     new String [] { 
      "Title 1", "Title 2", "Title 3", "Title 4" 
     } 
    )); 
    jScrollPane2.setViewportView(jTable1); 

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
    jPanel2.setLayout(jPanel2Layout); 
    jPanel2Layout.setHorizontalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 584, Short.MAX_VALUE) 
     .addGroup(jPanel2Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 
    jPanel2Layout.setVerticalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel2Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel1) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(jScrollPane2) 
      .addContainerGap()) 
    ); 

    jScrollPane1.setViewportView(jPanel2); 

    jTabbedPane1.addTab("Calandar", jScrollPane1); 

    jMenu1.setText("File"); 

    jMenuItem1.setText("jMenuItem1"); 
    jMenu1.add(jMenuItem1); 

    jMenuItem2.setText("jMenuItem2"); 
    jMenu1.add(jMenuItem2); 
    jMenu1.add(jSeparator1); 

    jMenuItem3.setText("Exit Application"); 
    jMenuItem3.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jMenuItem3ActionPerformed(evt); 
     } 
    }); 
    jMenu1.add(jMenuItem3); 

    jMenuBar1.add(jMenu1); 

    jMenu2.setText("Edit"); 
    jMenuBar1.add(jMenu2); 

    jMenu3.setText("Tools"); 
    jMenuBar1.add(jMenu3); 

    jMenu4.setText("Format"); 
    jMenuBar1.add(jMenu4); 

    jMenu6.setText("Calendar"); 
    jMenuBar1.add(jMenu6); 

    jMenu5.setText("Preferences"); 
    jMenuBar1.add(jMenu5); 

    setJMenuBar(jMenuBar1); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jTabbedPane1) 
      .addContainerGap()) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 365, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 

    pack(); 
}// </editor-fold>       

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {           

}           

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    new loginapp().setVisible(true); 
}           

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {           
    this.dispose(); 
}           

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    /* 
    * Set the Nimbus look and feel 
    */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* 
    * If Nimbus (introduced in Java SE 6) is not available, stay with the 
    * default look and feel. For details see 
    * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    /*try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(MainProgram.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(MainProgram.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(MainProgram.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(MainProgram.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    }*/ 
    //</editor-fold> 

    /* 
    * Create and display the form 
    */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      new MainProgram().setVisible(true); 
     } 
    }); 
} 
// Variables declaration - do not modify      
private javax.swing.JButton jButton2; 
private javax.swing.JButton jButton3; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel3; 
private javax.swing.JMenu jMenu1; 
private javax.swing.JMenu jMenu2; 
private javax.swing.JMenu jMenu3; 
private javax.swing.JMenu jMenu4; 
private javax.swing.JMenu jMenu5; 
private javax.swing.JMenu jMenu6; 
private javax.swing.JMenuBar jMenuBar1; 
private javax.swing.JMenuItem jMenuItem1; 
private javax.swing.JMenuItem jMenuItem2; 
private javax.swing.JMenuItem jMenuItem3; 
private javax.swing.JPanel jPanel1; 
private javax.swing.JPanel jPanel2; 
private javax.swing.JScrollPane jScrollPane1; 
private javax.swing.JScrollPane jScrollPane2; 
private javax.swing.JPopupMenu.Separator jSeparator1; 
private javax.swing.JTabbedPane jTabbedPane1; 
private javax.swing.JTable jTable1; 
// End of variables declaration     

}

,我有我的源碼包的seaglasslookandfeel-0.2.jar。

例如

Source Packages 
-pamsorganizer 
    -MainProgram.java 
    -seaglasslookandfeel-0.2.jar 

所以我的問題是,有人可能幫助我得到seaglass工作在我的Java應用程序。我的錯誤是波紋管:

java.lang.ClassNotFoundException: com.seaglasslookandfeel.SeaGlassLookAndFeel 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:270) 
at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1873) 
at javax.swing.UIManager.setLookAndFeel(UIManager.java:579) 
at pamsorganizer.MainProgram$4.run(MainProgram.java:225) 
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
at java.awt.EventQueue.access$200(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:694) 
at java.awt.EventQueue$3.run(EventQueue.java:692) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

什麼是你的問題? –

+0

@peeskillet我的問題是我不知道如何使用Seaglass。我將我的錯誤添加到問題 – Fearless

回答

5

將它添加到您的庫

只需右鍵點擊你的庫文件夾中的項目資源管理器,添加JAR /文件夾

它應該工作,我只是測試它。真的不需要測試,但它每次都適用於我。

+1

謝謝,我沒有意識到這是我所做的待辦事項!非常感激! – Fearless

1

即使添加jar文件到烏爾項目後,你必須輸入類

import com.seaglasslookandfeel.*; 

我沒有和它的工作對我來說....

+0

謝謝,感謝此評論 –