2017-11-17 14 views
2

나는 로그인 패널 (사용자 이름과 패스워드)과 3 개의 탭이있는 패널을 가진 의사 프로그램 인 java 프로그램을 만들기위한 프로젝트를 받았다. 문제는 내가 단 하나의 탭을 추가 할 수 있으며, label2, panel2 등의 객체를 복제하여 다른 탭을 추가하려고 시도했을 때 실행 된 JAR 파일에 나타나지 않는다는 것입니다. 아래 코드를 게시했습니다.자바 (스윙)에서 탭 추가하기

공공 무효의 actionPerformed (ActionEvent의의 AE)

{String value1 = text1.getText(); 
    String value2 = text2.getText(); 
    if(value1.equals("admin") && value2.equals("admin123456")) { 
     NextPage page=new NextPage(); 
     page.setVisible(true); 

     JTabbedPane tabbedPane1 = new JTabbedPane(); 
     ImageIcon icon1 = createImageIcon("images/middle.gif"); 
     JComponent panel1 = makeTextPanel("panel#1"); 
     tabbedPane1.addTab("Booking", icon1, panel1, "For booking appointments"); 
     JLabel label = new JLabel("Welcome "+value1); 
     page.getContentPane().add(label); 
     page.getContentPane().add(tabbedPane1); 
     //page.add(icon); 
     page.getContentPane().add(panel1); 

    JTabbedPane tabbedPane2 = new JTabbedPane(); 
    ImageIcon icon2 = createImageIcon("images/middle.gif"); 
    JComponent panel2 = makeTextPanel("panel#2"); 
    tabbedPane2.addTab("Doctors", icon2, panel2, "For choosing appointments"); 
    JLabel label2 = new JLabel("Welcome "+value2); 
    page.getContentPane().add(label2); 
    page.getContentPane().add(tabbedPane2); 
    //page.add(icon2); 
    page.getContentPane().add(panel2);} 
+0

어떻게 새 탭을 만들려고했는데, 어디서 잘못되었는지 확인할 수 있습니다. – dan6657

+0

아마도 작동하지 않는 실제 코드로 업데이트해야 할 것입니다. – beruic

+0

그 피드백에 감사드립니다. 내가 어디로 잘못 갔는지 말해줘. –

답변

2

나는 일반적으로, 항상이 작업을위한 최고의 도구와 같은 GUI 빌더를 고려한다.

enter image description here

그것은 당신이 아마 불평 것이다 이클립스 내부로드, 일부 "수동 혼란"을 할 경우 없는 사실 그 코드는 물론

@SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

    jTabbedPane = new javax.swing.JTabbedPane(); 
    jPanelFirst = new javax.swing.JPanel(); 
    jPanelSecond = new javax.swing.JPanel(); 
    jPanelThird = new javax.swing.JPanel(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jPanelFirst.setLayout(null); 
    jTabbedPane.addTab("tab1", jPanelFirst); 

    jPanelSecond.setLayout(null); 
    jTabbedPane.addTab("tab2", jPanelSecond); 

    jPanelThird.setLayout(null); 
    jTabbedPane.addTab("tab3", jPanelThird); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jTabbedPane) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jTabbedPane) 
    ); 

    pack(); 
    }// </editor-fold> 

이식 할 수 없습니다입니다 NetBeans가로드하지 못합니다. 사실입니다.

개인적으로, 나는 항상 나 자신에게 묻습니다. 수동으로 모든 코드를 작성하는 데 시간을 할애하고 싶습니다. 아니면 비즈니스 로직에 집중하고 신속하게 할 수있는 일부 도구 안에 모든 GUI를 구축합니까?

항상 상충 관계가 있습니다.

+0

IDE에서 생성 된 코드는 이식 가능하지 않으며 다른 IDE로 전환하여 IDE 학습에 시간을 소비하고 Swing이 아닌 경우 유지 관리 할 수 ​​없습니다. – camickr

0

다음은 잠깐 전에 작성한 프로그램의 샘플로 tabbedPanes를 사용합니다. 큰 그림이 있으면 좀 더 도움이 될 것입니다. 대신이 정보를 가능한 자원으로 사용하여 창에서 탭을 추가하는 순서가 중요한지 여부를 확인하십시오.

참고 contentPane은 WindowsBuilder에서 생성 된 JPanel입니다.

tabbedPane = new JTabbedPane(JTabbedPane.LEFT); 
    tabbedPane.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null)); 
    tabbedPane.setBackground(Color.DARK_GRAY); 
    tabbedPane.setForeground(Color.white); 
    tabbedPane.setBounds(10, 11, 1900, 1058 - taskBarSize); 
    tabbedPane.setFont(new Font("Arial Black", Font.BOLD, 14)); 
    contentPane.add(tabbedPane); 

    te = new TournamentEnlisting(); 
    tabbedPane.add("<html><body><table width='250'>Tournament Enlisting</table></body></html>", te); 

    su = new StreamUpdater(); 
    tabbedPane.addTab("<html><body><table width='250'>Stream Updating</table></body></html>", su); 

    sc = new StreamCapture(); 
    tabbedPane.addTab("<html><body><table width='250'>Stream Capture</table></body></html>", sc); 

    thumb = new ThumbnailEditor(); 
    tabbedPane.addTab("<html><body><table width='250'>Thumbnail Editor</table></body></html>", thumb);