Ich bin ziemlich neu in GUIs und habe Probleme mit dieser Aufgabe. Grundsätzlich haben wir insgesamt acht Klassen und müssen drei Panel-Klassen auf drei verschiedene Arten verwenden: Eine Methode verwendet nur die Klassen TopPanel und InitialPanel, eine Klasse nur die BottomPanel-Klasse und die InitialPanel-Klasse und eine Klasse nur die InitialPanel-Klasse. Das Ziel besteht darin, eine Schaltfläche im unteren Bereich anzuzeigen, die Informationen über einen Fußballspieler anzeigt, wenn der Knopf im oberen Bedienfeld gedrückt wird. `So verwenden Sie den Aktionslistener auf einer Schaltfläche in einer anderen Klasse
public class BottomPanel extends JPanel implements ActionListener
{
public JButton b1;
public BottomPanel(final JPanel topPanel)
{
super();
setBackground(Color.pink);
//setLayout(new GridLayout(3,1));
b1 = new JButton("When the user clicks on the button in the UPPER panel, displays the football player's position here");
add(b1);
}
public void actionPerformed(ActionEvent event)
{
Object obj = event.getSource();
if(obj == b1)
{
b1.setText(fp1.getPosition());
}
}
}
public class InitialPanel extends JPanel
{
public InitialPanel()
{
super();
setBackground(Color.gray);
setLayout(new BorderLayout());
TopPanel p1 = new TopPanel();
add(p1,"North");
BottomPanel p2 = new BottomPanel(p1);
add(p2,"Center");
}
}`
public class TopPanel extends JPanel
{
public TopPanel()
{
super();
setBackground(Color.yellow);
footballPlayer fp1 = new footballPlayer("Mark","Allen",22, "IST", 5.6f, 180, "Junior","Running Back");
// the whatsUp of this student has to shown in the other panel
JButton jl1 = new JButton(fp1.getInfo());
add(jl1);
}
}`
Ich glaube, ich erhielt die einzige TopPanel und InitialPanel läuft, aber auf mich fest, was für die anderen beiden zu tun. Außerdem ist getInfo() die Methode, die aufgerufen wird, wenn der Text der unteren Taste gesetzt wird, und wir können KEIN anderes footballplayer Objekt erstellen als das, das in TopPanel verwendet wird. Jede Hilfe wird geschätzt!
Vielen Dank! Bis auf eine Sache sieht alles gut aus, die Objekte von TopPanel werden immer noch nicht erkannt. Gibt es eine Möglichkeit, mTopPanel mit der TopPanel-Klasse zu verbinden? – Steve
Wie ist nicht zu erkennen? Wenn der BottomPanel-Konstruktor das obere Bedienfeld als Parameter erhält? –
Ich bin nicht wirklich sicher, wie verbindet sich finales JPanel topPanel mit der TopPanel-Klasse? Ich denke, das ist das Problem – Steve