2013-02-21 90 views
3

我一直在環顧JTabbedPane的,並且似乎無法找到任何解決方案。JTabbedPane沒有顯示添加的其他選項卡

我使用的GridBagLayout作爲經理,因爲我更舒服的(我是新來的Java編程)。

我做了這個類,並與JPanel的擴展它,並添加另一個類的所有類,當我運行程序我看到的是黑屏,我將發佈代碼,所以你可以看到。

(測試類/ GUI類)

import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Insets; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import javax.swing.JComboBox; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

public class test1 extends JPanel { 

    JTextField ID, Name, Address1, Address2, 
      Post_Code, Landline, Mobile, Card_Name, 
      Card_Number, Expiry_Date, Security_Number, 
      Identification = new JTextField(); 
    ResultSet rs1; 
    Connection conn; 
    PreparedStatement pst; 
    //JFrame frame = new JFrame("Test"); 
    String items[] = {"Yes", "No"}; 
    JComboBox box = new JComboBox(items); 

    public test1() { 
     JPanel jp2 = new JPanel(new GridBagLayout()); 
     GridBagConstraints c1 = new GridBagConstraints(); 
     c1.insets = new Insets(5, 5, 5, 5); 
     c1.gridx = 1; 
     c1.gridy = 0; 
     c1.anchor = GridBagConstraints.CENTER; 
     jp2.add(new JLabel("Customer Registration"), c1); 
     c1.gridx = 0; 
     c1.gridy = 1; 
     c1.anchor = GridBagConstraints.EAST; 
     jp2.add(new JLabel("ID"), c1); 
     c1.gridx = 1; 
     c1.gridy = 1; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(ID = new JTextField(10), c1); 
     c1.gridx = 0; 
     c1.gridy = 2; 
     c1.anchor = GridBagConstraints.EAST; 
     jp2.add(new JLabel("Name"), c1); 
     c1.gridx = 1; 
     c1.gridy = 2; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(Name = new JTextField(10), c1); 
     c1.gridx = 0; 
     c1.gridy = 3; 
     c1.anchor = GridBagConstraints.EAST; 
     jp2.add(new JLabel("Address"), c1); 
     c1.gridx = 1; 
     c1.gridy = 3; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(Address1 = new JTextField(15), c1); 
     c1.gridx = 1; 
     c1.gridy = 4; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(Address2 = new JTextField(15), c1); 
     c1.gridx = 0; 
     c1.gridy = 5; 
     c1.anchor = GridBagConstraints.EAST; 
     jp2.add(new JLabel("Post Code"), c1); 
     c1.gridx = 1; 
     c1.gridy = 5; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(Post_Code = new JTextField(10), c1); 
     c1.gridx = 0; 
     c1.gridy = 6; 
     c1.anchor = GridBagConstraints.EAST; 
     jp2.add(new JLabel("Landline"), c1); 
     c1.gridx = 1; 
     c1.gridy = 6; 
     c1.anchor = GridBagConstraints.WEST; 
     jp2.add(Landline = new JTextField(10), c1); 
    } 
} 

,結合所有JTabbedPane中的共同的類:

進口javax.swing.JFrame中; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities;

公共類tabadd延伸的JFrame {

JTabbedPane tab = new JTabbedPane(); 
Customer_Registration CR = new Customer_Registration(); 
test1 g = new test1(); 

public tabadd() { 
    tab.add("Customer Registration", CR); 
    tab.add("Equipment Registration", g); 
    getContentPane().add(tab); 
} 

public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      tabadd m = new tabadd(); 
      m.setTitle("Test"); 
      m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      m.setSize(1280, 720); 
      m.setLocationByPlatform(true); 
      m.setVisible(true); 
     } 
    }); 
} 

}

會有多個類因此Customer_Registration類。

再次感謝你的幫助。

+1

或更好幫助,發佈[SSCCE](http://sscce.org/)。 – 2013-02-21 19:39:08

+0

我測試了你的代碼,我發現沒有問題。而不是Customer_Registration,我發送null,我可以看到選項卡,所以也許你的問題在對象CR中。 – 2013-02-21 19:52:49

回答

2

你是不是在任何地方添加JP2面板。在test1類構造函數的末尾添加以下行。

add(jp2); 

另一種選擇是有GridBagLayout集作爲佈局管理器到test1JPanel和所有組件直接添加到它。這樣可以避免使用額外的jp2面板。

請使用標準的Java命名類,如test1變成Test1

+0

Dan ty爲它的工作效果:),多麼愚蠢的我忘記了LOL – user2078802 2013-02-21 19:50:43

+0

不客氣。 – 2013-02-21 19:52:36

相關問題