2013-12-17 70 views
0

我有一个使用卡片布局的Swing应用程序,它基本上根据用户从下拉菜单中选择的内容来更改显示的面板。在Swing中切换面板

我的一个面板有一个窗体。当按下提交按钮时,我需要收集所有要收集的输入信息,并且要切换到另一个输入。 (这第二个面板是在一个单独的类中定义的)我还需要将所有输入以某种方式传递给新面板中的方法。

有什么建议吗? Dario

+0

你能告诉我们一个代码示例吗? –

回答

3

如果您看下面的代码中的<-- s,每个应该解决您在帖子中的每个不同问题。我想你应该知道如何制作一个提交按钮,所以我没有包括这个。 (注意:这不是运行代码,只是建议);

public class MainPanel entends JPanel { 
    CardLayout layout = new CardLayout(); <-- card layout 
    JPanel panel = new JPanel(layout); <-- set layout to main panel 
    NewPanel newPanel = new NewPanel(); <-- you new panel 
    JPanel p1 = new JPanel();    <-- random panel 
    JTextField text = new JTextField() <-- text field in form 
    JButton button = new JButton(); 

    JComboBox cbox = new JComboBox(new String[] {"newPanel", "p1"}); <-- hold panel names 

    public MainPanel(){ 
     panel.add(newPanel, "newPanel");  <-- name associated with panel 
     panel.add(p1, "p1"); 

     ... 

     cbox.addAItemListener(new ItemListener(){ 
      public void itemStateChnaged(ItemEvent e){ 

       layout.show(panel, (string).getItem());  <-- show Panel from combobox 
      } 
     }); 

     button.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent e){ 
       String txt = text.getText(); 
       newPanel.printText(txt);    <-- Using method from other class  
      } 
     }); 
    } 
} 

public class NewPanel extends JPanel { 

    public void printText(String text){    <-- method from other class 
     System.out.println(text); 
    } 
}