2013-02-21 61 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

相关问题