나는 cardlayout 레이아웃이있는 메인 패널을 포함하는 프레임이있는 프로그램을 가지고 있으며 다른 카드/패널을 표시하려고합니다.JAVA cardLayout. 다른 클래스에서 카드를 호출하는 방법
필자의 경우 나는 버튼 액션 리스너로부터 새로운 카드를 호출하기 위해 정말로 고심하고있다.
버튼을 클릭 한 후에 새 카드를 표시하고 싶지만 내 청취자가 입력 한 코드 중 아무 것도 내가 원하는 카드를 표시하지 않았습니다.
내부에 println을했기 때문에 내 actionListener 작업을 알았습니다.
여기 내 코드가 있습니다. 나는 불필요한 것을 없애 버리고 읽기가 더 쉽다. 도와 주셔서 감사합니다!
내가 코드를 구조화에 대한 모든 조언을 것
메인 프레임 :
public class MainFrame extends JFrame{
final static String CONNEXION_VIEW = "connexionView";
final static String CONNEXION_FAILED_VIEW = "connexionRefusee";
public MainFrame()
{
super();
initialize();
}
private void initialize()
{
getMainPanel();
add(getMainPanel());
}
CardLayout cardLayout;
public CardLayout getCardLayout()
{
if (cardLayout == null)
{
cardLayout = new CardLayout();
}
return cardLayout;
}
JPanel mainPanel;
public JPanel getMainPanel()
{
if (mainPanel == null)
{
mainPanel = new JPanel();
mainPanel.setLayout(getCardLayout());
mainPanel.add(CONNEXION_VIEW, getConnexionView());
mainPanel.add(CONNEXION_FAILED_VIEW, getConnexionFailedView());
}
return mainPanel;
}
ConnexionView connexionView;
protected ConnexionView getConnexionView()
{
if (connexionView == null)
{
connexionView = new ConnexionView();
}
return connexionView;
}
ConnexionFailedView connexionFailedView;
protected ConnexionFailedView getConnexionFailedView()
{
if (connexionFailedView == null)
{
connexionFailedView = new ConnexionFailedView();
}
return connexionFailedView;
}
접속보기 버튼과 하나가 난 내 코드를 삽입 할 작업 리스너를 클릭
public class ConnexionView extends JPanel{
GridBagLayout gbl = new GridBagLayout();
private JButton btnConnexion;
Dimension dimensionBouton = new Dimension(170, 30);
public ConnexionView()
{
super();
initialise();
}
private void initialise()
{
setLayout(gbl);
GridBagConstraints gbcbtnConnexion = new GridBagConstraints();
gbcbtnConnexion.gridwidth = GridBagConstraints.REMAINDER;
gbcbtnConnexion.gridheight = GridBagConstraints.REMAINDER;
gbcbtnConnexion.gridx = 1;
gbcbtnConnexion.gridy = 2;
add(getBtnConnexion(), gbcbtnConnexion);
}
private JButton getBtnConnexion()
{
if (btnConnexion == null)
{
btnConnexion = new JButton("Connexion");
btnConnexion.setPreferredSize(dimensionBouton);
btnConnexion.setMinimumSize(dimensionBouton);
btnConnexion.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
/////code to display the connexion_Failed_View
System.out.println("test");
}
});
}
return btnConnexion;
}
}
와 접속이보기 실패의 하나는 내가 버튼을 미리
당신은 어떻게 든 버튼의 구성 요소를 유지해야합니다
할 수있다! 감사합니다. – Clement
@Clement Great. 답변 옆에있는 체크 표시를 선택하여 자유롭게 답변 할 수 있습니다. :) – daniu