我有一个使用卡片布局的Swing应用程序,它基本上会根据用户从下拉菜单中选择的内容来更改显示的面板。
我的一个面板有一个表格。我需要按下提交按钮以收集所有输入并将面板切换到另一个输入。 (第二个面板在一个单独的类中定义)我还需要将所有输入以某种方式传递给新面板中的方法。
有什么建议吗? 达里奥
答案 0 :(得分:3)
如果您查看以下代码中的<--
,则每个代码都应解决您帖子中的每个不同问题。我想你应该知道如何制作一个提交按钮,所以我没有包含它。 (注意:这不是运行代码,只是建议);
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);
}
}