Cześć, ostatnio wpadłem na pomysł zrobienia programu, który ma składać się z kilku okien o różnej zawartości ( żeby uprościć opis - pierwsze okno będzie np. oknem powitalnym z kilkoma przyciskami, w drugim będzie jakaś tabela, a w trzecim okno w którym będziemy wpisywali dane). W tym celu utworzyłem jedną główną klasę tworzącą główne okno programu, w którym mają być wyświetlane pozostałe panele, w których są obecne przyciski pozwalające na nawigację i przeniesienie do konkretnego innego panelu. Pomimo prób niestety nie udało mi się osiągnąć poprawnego rezultatu, gdyż albo wyświetlana jest strona początkowa i klikniecie w przycisk nic nie daje, albo po naciśnięciu przycisku strona początkowa znika i nie pokazuje się okno z pożądaną zawartością. Poniżej zamieszczam uproszczony kod.
Główne okno z klasą main.
import java.awt.CardLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Okna extends JFrame {
CardLayout manager = new CardLayout();
private JPanel panelGlowny;
private JFrame oknoProgramu;
private Okno1 okno1 = new Okno1();
private Okno2 okno2 = new Okno2();
public Okna() {
oknoProgramu = new JFrame();
panelGlowny = new JPanel();
panelGlowny.setLayout(manager);
oknoProgramu.add(panelGlowny);
panelGlowny.add(okno1, "okno1");
panelGlowny.add(okno2, "okno2");
manager.show(panelGlowny, "okno1");
setSize(700, 700);
setLayout(null);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Okna();
}
}
Okno 1 które ma być wyświetlane na samym początku zawierające, przycisk dalej, który ma przenosić do Okna 2.
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Okno1 extends JPanel implements ActionListener{
private JPanel okienko1;
private JButton przycisk;
public Okno1()
{
okienko1=new JPanel();
przycisk=new JButton("dalej");
okienko1.setVisible(true);
okienko1.add(przycisk);
okienko1.setBounds(20, 20, 200, 200);
okienko1.setBackground(Color.red);
przycisk.setBounds(20, 20, 40, 70);
przycisk.setFocusable(false);
przycisk.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
Object klawisz = e.getSource();
if(klawisz==przycisk)
{
}
}
}
Okno 2, które ma być wyświetlone po kliknięciu przycisku "dalej" obecnego w oknie 1. Zawiera przycisk "wstecz" pozwalający powrócić do okna początkowego
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Okno2 extends JPanel implements ActionListener{
private JPanel okienko2;
private JButton cofnij;
public Okno2() {
okienko2=new JPanel();
cofnij=new JButton("wstecz");
okienko2.setVisible(true);
okienko2.add(cofnij);
okienko2.setBounds(20, 20, 200, 200);
okienko2.setBackground(Color.red);
cofnij.setBounds(20, 20, 40, 70);
cofnij.setFocusable(false);
cofnij.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
Object klawisz = e.getSource();
if(klawisz==cofnij)
{
}
}
}
Wiem, że nie dodałem żadnych komend, które mają się wykonać po naciśnięciu przycisku. Czy ktoś mógłby mi pomóc i powiedzieć jak poprawnie rozwiązać problem z przełączaniem kart i jak wywoływać poszczególne okna?