2012-02-03 45 views
1

我有一個具有表單的Java應用程序,用戶必須填寫它,但我想使用多層技術填充大表單作爲三部分,單擊確定,第一部分必須不可見,第二部分將可見,第三部分也不可見。在java應用程序中具有分層特性的組件?

我必須使用什麼,jpanel,jLayeredPane或什麼,以及如何使用netbeans?

+1

這個問題可以張貼到http://forums.netbeans.org/ – mKorbel 2012-02-03 11:01:21

回答

5

你可能想看看CardLayout,這裏是一個教程,How to Use CardLayout.

另一種選擇將使用多個JDialogs。

...以及如何使用netbeans做到這一點?

如果你的意思是使用GUI構建器,我建議你去學習,而不是學習的IDE :)

1

試試你的手放在此代碼:

import java.awt.Color; 
import java.awt.event.*; 
import javax.swing.*; 

public class Form 
{ 
    private static void createAndDisplayGUI() 
    { 
     JFrame frame = new JFrame("Form"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLocationRelativeTo(null); 

     JPanel mainPanel = new JPanel(); 
     mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS)); 

     final JPanel firstPanel = new JPanel(); 
     firstPanel.setBackground(Color.DARK_GRAY);  
     JLabel label = new JLabel("I AM PANEL FIRST"); 
     label.setForeground(Color.WHITE); 
     firstPanel.add(label); 

     final JPanel secondPanel = new JPanel(); 
     secondPanel.setBackground(Color.YELLOW);   
     label = new JLabel("I AM PANEL SECOND"); 
     label.setForeground(Color.BLACK); 
     secondPanel.add(label); 

     final JPanel thirdPanel = new JPanel(); 
     thirdPanel.setBackground(Color.BLUE);  
     label = new JLabel("I AM PANEL THIRD"); 
     label.setForeground(Color.WHITE); 
     thirdPanel.add(label); 

     JButton button = new JButton("NEXT"); 
     button.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent ae) 
      { 
       if (firstPanel.isShowing()) 
       { 
        firstPanel.setVisible(false); 
        secondPanel.setVisible(true); 
       } 
       else if (secondPanel.isShowing()) 
       { 
        secondPanel.setVisible(false); 
        thirdPanel.setVisible(true); 
       } 
      } 
     }); 

     mainPanel.add(firstPanel); 
     mainPanel.add(secondPanel); 
     mainPanel.add(thirdPanel); 
     mainPanel.add(button); 

     secondPanel.setVisible(false); 
     thirdPanel.setVisible(false); 

     frame.setContentPane(mainPanel);   
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       createAndDisplayGUI(); 
      } 
     }); 
    } 
} 
相關問題