2013-02-21 2 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/)를 게시하십시오. –

+0

코드를 테스트 한 결과 아무런 문제가 없습니다. Customer_Registration 대신 널 (null)을 보내고 탭을 볼 수 있으므로 문제가 오브젝트 CR에있을 수 있습니다. –

답변

2

어디서나 jp2 패널을 추가하지 않습니다. test1 클래스 생성자 끝에 다음 줄을 추가하십시오.

add(jp2); 

또 다른 선택은 test1JPanel에 레이아웃 매니저로 GridBagLayout 세트를 가지고 직접 모든 구성 요소를 추가하는 것입니다. 이 방법을 사용하면 추가 jp2 패널을 사용하지 않아도됩니다.

그리고 test1과 같은 클래스에 대한 표준 Java 명명법을 사용하면 Test1이됩니다.

+0

Dan ty가 응답 해주었습니다 :) LOL을 잊고 얼마나 바보 같습니까 – user2078802

+0

안녕하세요. –