2014-09-25 56 views
1

我在JFrame上使用JPanel,我在JPanel上有一個標題爲。我創建了JPanel,標題邊界爲NetBeans,我可以看到我的標題和蝕刻幀。當我跑步時,我只看到標題,但看不到蝕刻的框架。任何想法爲什麼我看不到蝕刻的框架?我嘗試設置外觀和感覺,但不能讓框架顯示出來,看起來很奇怪,沒有邊框的標題。對於JPanel TitledBorder沒有蝕刻的框架

運行爪哇1.7Windows 7。當我們使用java 1.6時,我不記得發生了這種情況。

這裏的示例代碼:

package javaapplication1; 

public class NewJFrame extends javax.swing.JFrame { 

/** Creates new form NewJFrame */ 
public NewJFrame() { 
    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() { 

    jPanel1 = new javax.swing.JPanel(); 
    jLabel1 = new javax.swing.JLabel(); 
    jPanel2 = new javax.swing.JPanel(); 
    jTextField1 = new javax.swing.JTextField(); 
    jLabel2 = new javax.swing.JLabel(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder())); 

    jLabel1.setText("This is just an etched frame"); 

    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() 
      .addComponent(jLabel1) 
      .addContainerGap(234, Short.MAX_VALUE)) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel1Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel1) 
      .addContainerGap(80, Short.MAX_VALUE)) 
    ); 

    jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("My Titled Border")); 

    jTextField1.setText("Not on the titled border"); 
    jTextField1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField1ActionPerformed(evt); 
     } 
    }); 

    jLabel2.setText("Where is the frame:"); 

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
    jPanel2.setLayout(jPanel2Layout); 
    jPanel2Layout.setHorizontalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel2Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jLabel2) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 
    jPanel2Layout.setVerticalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel2Layout.createSequentialGroup() 
      .addGap(19, 19, 19) 
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel2) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addContainerGap(61, Short.MAX_VALUE)) 
    ); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
       .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
      .addContainerGap()) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

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

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

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new NewJFrame().setVisible(true); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JPanel jPanel1; 
private javax.swing.JPanel jPanel2; 
private javax.swing.JTextField jTextField1; 
// End of variables declaration     

} 
+1

爲了更好地幫助越早,張貼[MCVE(http://stackoverflow.com/help/mcve)(最小完備可驗證例)。 – 2014-09-25 13:37:38

+0

啊,我的好朋友'GroupLayout',我多麼渴望你。但是,嚴肅地說,如果你學會自己編寫GUI,而不是編輯器,你會做得更好。 – user1803551 2014-09-25 14:48:04

回答

2

這不是一個答案了

這是我得到1.7:

enter image description here

難道不是你想要的?

編輯:

嘗試運行此:

public class NewJFrame extends JFrame { 

    public NewJFrame() { 

     JPanel p = new JPanel(); 
     p.add(new JLabel("AAAAA")); 
     p.setBorder(BorderFactory.createTitledBorder("Title")); 
     add(p); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     pack(); 
     setVisible(true); 
    } 

    public static void main(String args[]) { 

     new NewJFrame(); 
    } 
} 

這是非常小的,應縮小選擇範圍。這就是我得到:

enter image description here

+0

當我運行它時,我在下面板上看不到邊框。 – 2014-09-25 15:34:14

+0

@Mike_G清理並重建項目。 – user1803551 2014-09-25 15:49:53

+0

我做了清理和重建,並得到相同的行爲。我使用Netbeans和Eclipse構建了代碼,並獲得了相同的結果。我認爲這與在Windows 7上運行的Java版本有關。 – 2014-09-25 17:05:23