JTabbedPane не показывает другие добавленные вкладки

Я искал вокруг JTabbedPane и не могу найти никакого решения.

Я использую GridBagLayout в качестве менеджера, так как мне это удобнее (я новичок в программировании на Java).

Я создал класс и расширил его с помощью JPanel и добавил все классы в другой класс, когда я запускаю программу, все, что я вижу, это пустой экран, я опубликую код, чтобы вы могли видеть.

(тестовый класс / класс графического интерфейса)

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.

Еще раз спасибо за вашу помощь.


person user2078802    schedule 21.02.2013    source источник
comment
или лучше помогите раньше, опубликуйте SSCCE.   -  person Andrew Thompson    schedule 21.02.2013
comment
Я проверил ваш код и не нашел проблем. Вместо Customer_Registration я отправляю null и вижу вкладки, так что, возможно, ваша проблема в объекте CR.   -  person Marcelo Tataje    schedule 21.02.2013


Ответы (1)


Вы никуда не добавляете панель jp2. Добавьте следующую строку в конец конструктора класса test1.

add(jp2);

Другой вариант — установить GridBagLayout в качестве менеджера компоновки для test1 JPanel и добавить все компоненты непосредственно в него. Таким образом, вы избежите использования дополнительной панели jp2.

И, пожалуйста, используйте стандартное именование Java для классов, например, test1 становится Test1.

person Dan D.    schedule 21.02.2013
comment
Дэн Ти за ответ, это сработало :), как глупо с моей стороны забыть об этом LOL - person user2078802; 21.02.2013