2014-09-25 22 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