JTabbedPane未显示添加的其他选项卡

时间:2013-02-21 19:09:51

标签: java swing jpanel 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组合在一起的类:

import javax.swing.JFrame; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities;

public class 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 个答案:

答案 0 :(得分:2)

您没有在任何地方添加jp2面板。在test1类构造函数的末尾添加以下行。

add(jp2);

另一种选择是将GridBagLayout设置为test1 JPanel的布局管理器,并将所有组件直接添加到其中。这样您就可以避免使用额外的jp2面板。

请使用标准的Java命名类,例如test1成为Test1