Chodzi o to żeby po kliknięci w zakładkę Sprzedaż a później znów w sprzedaż otworzyło mi się to drugie okno. Ponieważ w tym drugim oknie chce mieć wszystkie rzeczy dotyczące właśnie sprzedaży itp. Chodzi o to, że chcę aby każdy przycisk otwierał tak jakby oddzielny program w jednym całym dużym programie. Mam nadzieję, że jasno to wszystko opisałem. Bardzo proszę o pomoc.
Zrobiłem tak. Więc to jest pierwsza klasa.Klasa główna czyli interfejs mojego programu:
package OknoDial;
import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Main
{
public static void main(String[] args)
{
Okno ramka = new Okno();
ramka.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
ramka.setVisible(true);
}
}
class Okno extends JFrame
{
public Okno()
{
//Tworze menu dodane do ramki
JMenuBar pasekm = new JMenuBar();
setJMenuBar(pasekm);
// dodaje do menu zakladki
JMenu sPlik = new JMenu("Sprzedaż");
sPlik.addActionListener((ActionListener) new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenieSprz)
{
if(okno == null)
okno = new OknoSprzd(Okno.this);
okno.setVisible(true);
}
});
pasekm.add(sPlik);
sPlik.setMnemonic('S');
JMenu magPlik = new JMenu("Magazyn");
pasekm.add(magPlik);
magPlik.setMnemonic('M');
JMenu adminPlik = new JMenu("Administracja");
pasekm.add(adminPlik);
adminPlik.setMnemonic('A');
JMenu raportPlik = new JMenu("Raporty");
pasekm.add(raportPlik);
raportPlik.setMnemonic('R');
JMenu zamknijPlik = new JMenu("Zamknij");
pasekm.add(zamknijPlik);
zamknijPlik.setMnemonic('Z');
// dodaje podzakladki do zakladki sprzedaz
// zakladka sprzedaz S
JMenuItem elemOtworzS = new JMenuItem("Sprzedaż");
sPlik.add(elemOtworzS);
elemOtworzS.setMnemonic('R');
//Zaklaka lista paragonow i faktu L
JMenuItem elemOtworzL = new JMenuItem("Lista Paragonów");
sPlik.add(elemOtworzL);
elemOtworzL.setMnemonic('L');
//Zakładka zwrotów ZW
JMenuItem elemOtworzZW= new JMenuItem("Zwroty");
sPlik.add(elemOtworzZW);
elemOtworzZW.setMnemonic('Z');
sPlik.addSeparator();
sPlik.addSeparator();
//Zakładka klienci KL
JMenuItem elemOtworzKL = new JMenuItem("Klienci");
sPlik.add(elemOtworzKL);
elemOtworzKL.setMnemonic('K');
//Zakładka Saldo bieżące
JMenuItem elemOtworzSB = new JMenuItem("Saldo Bieżące");
sPlik.add(elemOtworzSB);
elemOtworzSB.setMnemonic('B');
//Dodaje zakladki do menu magazyn
//zakladka stan magazynu LT
JMenuItem elemOtworzLT = new JMenuItem("Lista Towarów");
magPlik.add(elemOtworzLT);
elemOtworzLT.setMnemonic('L');
//Zakladka operacji magazynowych OM
JMenuItem elemOtworzOM = new JMenuItem("Operacje Magazynowe");
magPlik.add(elemOtworzOM);
elemOtworzOM.setMnemonic('O');
//Zakładka przyjęcia planowanePP
JMenuItem elemOtworzPP = new JMenuItem("Przyjęcia planowane");
magPlik.add(elemOtworzPP);
elemOtworzPP.setMnemonic('y');
magPlik.addSeparator();
magPlik.addSeparator();
//Zakładka inwentaryzacji Inwent
JMenuItem elemInwent= new JMenuItem("Inwentaryzacja");
magPlik.add(elemInwent);
elemInwent.setMnemonic('I');
//Dodaje zakładki do menu Administracja
// Zakładka administracji ZM
JMenuItem elemOtworzZM = new JMenuItem("Zmiana");
adminPlik.add(elemOtworzZM);
elemOtworzZM.setMnemonic('Z');
adminPlik.addSeparator();
adminPlik.addSeparator();
//Zakładka menu zadatek + podmenu
JMenu menuZadatek = new JMenu ("Zadatek");
menuZadatek.setMnemonic('a');
adminPlik.add(menuZadatek);
JMenuItem elemZadKG = new JMenuItem("Zadatek KG");
menuZadatek.add(elemZadKG);
menuZadatek.setMnemonic('G');
JMenuItem elemZadKK = new JMenuItem("Zadatek KK");
menuZadatek.add(elemZadKK);
menuZadatek.setMnemonic('K');
menuZadatek.addSeparator();
menuZadatek.addSeparator();
JMenuItem elemZwrotKG = new JMenuItem("Zwrot zadatek KG");
menuZadatek.add(elemZwrotKG);
elemZwrotKG.setMnemonic('w');
JMenuItem elemZwrotKK = new JMenuItem("Zwrot zadatek KK");
menuZadatek.add(elemZwrotKK);
menuZadatek.setMnemonic('d');
//Zakładka konwoju
JMenuItem elemKonwoj = new JMenuItem("Konwój");
adminPlik.add(elemKonwoj);
elemKonwoj.setMnemonic('K');
//Dodaje zakladki do menu Raporty
//Zakladka analiza sprzedazy
JMenuItem elemAnaliza = new JMenuItem("Analiza Sprzedaży");
raportPlik.add(elemAnaliza);
elemAnaliza.setMnemonic('A');
//Zakładka przeceny
JMenuItem elemPrzecena = new JMenuItem("Przeczeny");
raportPlik.add(elemPrzecena);
elemPrzecena.setMnemonic('N');
//Zakładka efektywnosc sprzedazy
JMenuItem elemOtworzES = new JMenuItem("Efektywność Sprzedaży");
raportPlik.add(elemOtworzES);
elemOtworzES.setMnemonic('F');
//Zakładka zamknięcia programu
JMenuItem zamknijProg = new JMenuItem("Zamknij");
zamknijProg.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent zdarzenie)
{
System.exit(0);
}
});
zamknijPlik.add(zamknijProg);
zamknijProg.setMnemonic('Z');
// umiesc ramke na srodku ekranu
setSize(szerEkranu / 2, wysEkranu / 2);
setLocation(szerEkranu / 4, wysEkranu / 4);
//okresl ikone i tytul ramki
Image rys = zestaw.getImage("ikona.gif");
setIconImage(rys);
setTitle("InterSalon");
// Dołączam Panel do ramki
Hpanel panel = new Hpanel();
Container powZawartosci = getContentPane();
powZawartosci.add(panel);
}
// Pobieram rozdzielczosc ekranu
Toolkit zestaw = Toolkit.getDefaultToolkit();
Dimension rozmiarEkranu = zestaw.getScreenSize();
int wysEkranu = rozmiarEkranu.height;
int szerEkranu = rozmiarEkranu.width;
// Tworzę panel na, którym będą znajdować się przyciski
//obsługujące program
// Hpanel - panel głowny
class Hpanel extends JPanel
{
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
String message = "Salon sprzedaży, Białystok BA1";
Font cz = new Font("Serif", Font.BOLD, 22);
g2.setFont(cz);
FontRenderContext kontekst = g2.getFontRenderContext();
Rectangle2D granice = cz.getStringBounds(message, kontekst);
double x = (getWidth() - granice.getWidth()) / 2;
double y = (getHeight() - granice.getHeight()) / 1;
double wzniesienie = - granice.getY();
double bazowyY = y + wzniesienie;
g2.drawString(message, (int)x, (int)(bazowyY));
g2.setPaint(Color.black);
}
public static final int x = 600;
public static final int y = 700;
}
private OknoSprzd okno;
}
A to druga część kodu. Czyli okno dialogowe(modalne)"Sprzedaż":
package OknoDial;
import javax.swing.*;
import java.awt.Event.*;
import java.awt.*;
class OknoSprzd extends JDialog
{
public OknoSprzd(JFrame wlasciciel)
{
super(wlasciciel, "Sprzedaż", true);
final JDialog SellPanel = new JDialog();
Container powZawartosci = SellPanel.getContentPane();
SellPanel.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
SellPanel.setResizable(false);
SellPanel.setModal(true);
}
}
I kurcze niby według NetBeans'a nie ma błędu a jednak nie działa tak jak należy. Co jest nie tak?</asm>