ich habe ein programm mit einem rahmen, der ein hauptfeld mit dem kartenlayout-layout enthält, und ich möchte, dass es verschiedene karten/panel anzeigt.JAVA KarteLayout. wie man eine karte aus verschiedenen klassen anruft
In meinem Fall habe ich wirklich Schwierigkeiten, eine neue Karte von einem Button-Action-Listener zu nennen.
Ich möchte eine neue Karte erscheinen, nachdem ich auf eine Schaltfläche geklickt habe, aber keiner der Codes, die ich in meine Aktion Listener legte, zeigte die Karte, die ich wollte.
Ich kenne meine actionListener Arbeit, weil ich eine println innerhalb getan habe.
Hier ist mein Code. Ich habe alles, was unnötig war los, so dass es leichter zu lesen ist. Danke für die Hilfe!
Ich werde alle Ratschläge über Code Strukturationstheorie
den Mainframe:
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;
}
die Verbindung Ansicht, die mit dem Knopf mit der Aktion Hörer klicken, wo ich meinen Code setzen will
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;
}
}
und die Verbindung fehlgeschlagen Ansicht, die eine i angezeigt werden soll, nachdem die Schaltfläche geklickt wird
public class ConnexionFailedView extends JPanel{
public ConnexionFailedView()
{
super();
initialise();
}
private void initialise()
{
setBackground(Color.YELLOW);
}
Dank im Voraus
es funktionierte! danke – Clement
@Clement Großartig. Fühlen Sie sich frei, das Häkchen neben der Antwort zu markieren, um es als Beantwortet zu markieren :) – daniu