【发布时间】:2014-01-25 18:29:42
【问题描述】:
我有一个JFrame,其中有一个Panel 用于JButtons 在两个JPanels(RegistrationPanel 和ConfirmationPanel)之间导航。两个JPanels通过CardPanel/CardLayout相互切换。当用户在RegistrationPanel 中输入信息时,有没有办法将此信息返回到下面列出的StartFrame?
import java.awt.BorderLayout;
public class StartFrame extends JFrame implements ActionListener
{
JButton nextButton = new JButton("Next");
JButton previousButton = new JButton("Previous");
JButton registerButton = new JButton("Register");
JPanel cardPanel = new JPanel();
CardLayout cardLayout = new CardLayout(10, 10);
public StartFrame()
{
setLayout(new BorderLayout(5, 5));
nextButton.addActionListener(this);
previousButton.addActionListener(this);
previousButton.setVisible(false);
registerButton.addActionListener(this);
registerButton.setVisible(false);
Panel buttonsPanel = new Panel(new FlowLayout(FlowLayout.CENTER));
buttonsPanel.add(previousButton);
buttonsPanel.add(nextButton);
buttonsPanel.add(registerButton);
setCardLayout();
add(BorderLayout.SOUTH, buttonsPanel);
add(BorderLayout.CENTER, cardPanel);
}
private void setCardLayout()
{
cardPanel.setLayout(cardLayout);
cardPanel.add(new RegistrationPanel(), "registration");
cardPanel.add(new ConfirmationPanel(), "confirmation");
cardLayout.show(cardPanel, "registration");
}
@Override
public void actionPerformed(ActionEvent event)
{
if (event.getSource().equals(nextButton))
{
cardLayout.next(cardPanel);
previousButton.setVisible(true);
registerButton.setVisible(true);
nextButton.setVisible(false);
}
else
{
cardLayout.previous(cardPanel);
previousButton.setVisible(false);
registerButton.setVisible(false);
nextButton.setVisible(true);
}
}
}
【问题讨论】:
标签: java user-interface jframe jpanel