3

我一直在寻找有关 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;导入 javax.swing.JTabbedPane;导入 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 类。

再次感谢您的所有帮助。

4

1 回答 1

2

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

add(jp2);

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

并且请使用标准的 Java 命名类,例如test1become Test1

于 2013-02-21T19:43:42.997 回答