witam
dopiero zaczynam zabawe z java wiec prosze o wyrozumialosc :).
Mam ramke i tam menu. wybieram Plik-> Dialog i pojawia sie okno dialogowe. to czego nie rozumiem to sposob zapisu zmiennej obiektu klasy ktora rozszerza klase JDialog. ponizej najpier wkleje kod
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class menu2
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
Okno ramka=new Okno();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.setVisible(true);
}
});
}
}
class Okno extends JFrame
{
public Okno()
{
setTitle("asd");
setSize(SZEROKOSC, WYSOKOSC);
JMenuBar menuBar=new JMenuBar();
JMenu plikMenu=new JMenu("Plik");
JMenuItem dialogItem=new JMenuItem("Dialog");
dialogItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (dialog==null)
dialog=new NowyDialog(Okno.this);
dialog.setVisible(true);
}
});
JMenuItem exitItem=new JMenuItem("Exit");
exitItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
plikMenu.add(dialogItem);
plikMenu.add(exitItem);
menuBar.add(plikMenu);
setJMenuBar(menuBar);
}
private static final int SZEROKOSC=300;
private static final int WYSOKOSC=200;
private NowyDialog dialog;
}
class NowyDialog extends JDialog
{
public NowyDialog(JFrame owner)
{
super(owner, "Okno dialogowe", true);
add(new JLabel("przykladowy tekst"), BorderLayout.CENTER);
JButton ok=new JButton("ok");
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
setVisible(false);
}
});
JPanel panel=new JPanel();
panel.add(ok);
add(panel, BorderLayout.SOUTH);
setSize(200,100);
}
}
chodzi mi o sposob zapisu w anonimowej klasie wewnetrznej dla dialogItem
musi byc tak:
dialog=new NowyDialog(Okno.this);
i potem zmienna skladowa
private NowyDialog dialog;
a nie moge tak:
NowyDialog dialog=new NowyDialog(Okno.this);
bo pojawia sie blad not a statement