Jak w Jawie sterując z menu w oknie nr 1 spowodować aby zmienić coś w oknie nr 2 i aby oba okna były widoczne w jednym czasie.
Jesli jest to zwykłą aplikacja to w metodzie actionPerformed(Event evt)
muszisz dla przypadku wybrania danej opcji menu wywołać odpowiednią metodę z klasy drugiego okna lub bezpośrednio zmienić dana jesli jest publiczna.
Jesli jest to aplet to zrób to w metodzie handleEvent lub w metodzie action.
Żeby od razu widzieć efekty muszisz wywołac metodę repaint().
Jesli jest to zwykłą aplikacja to w metodzie actionPerformed(Event evt)
muszisz dla przypadku wybrania danej opcji menu wywołać odpowiednią metodę z klasy drugiego okna lub bezpośrednio zmienić dana jesli jest publiczna.Jesli jest to aplet to zrób to w metodzie handleEvent lub w metodzie action.
Żeby od razu widzieć efekty muszisz wywołac metodę repaint().
Wdzięczny byłbym za jakis przyklad, bo probowalem cos robic w ten sposob i nic z tego nie wyszlo.
Jesli jest to zwykłą aplikacja to w metodzie actionPerformed(Event evt)
muszisz dla przypadku wybrania danej opcji menu wywołać odpowiednią metodę z klasy drugiego okna lub bezpośrednio zmienić dana jesli jest publiczna.Jesli jest to aplet to zrób to w metodzie handleEvent lub w metodzie action.
Żeby od razu widzieć efekty muszisz wywołac metodę repaint().
Jest to zwykla aplikacja. I wlasnie w tej drugiej klasie na podstawie ktorej tworzone jest okno nr 2 są metody.Nie wiem jak wywolać (stworzyć) actionListenery zeby z klasy pierwszej w której jest menu wywolać te metody ktore dzialają w klasie z okna nr 2. (np dodać jakiś komponent lub zmienic układ komponentow w oknie). Prosiłbym o jakiś przykład.
Bardzo surowa wersja ale jest tam przykład tego czego szukałeś,
wybierasz pozycje z menu w jednym oknie i zmienia się etykieta w drugim.
[code]
import java.awt.;
import java.awt.event.;
class prz2 extends Frame implements ActionListener {
Menu Menu1;
MenuBar Menubar1;
MenuItem menuitem1, menuitem2, menuitem3;
dwa uchwyt;
prz2(String title){
super(title);
//DisplayText = new TextField("");
//setLayout(new GridLayout(1, 1));
Menubar1 = new MenuBar();
Menu1 = new Menu("File");
menuitem1 = new MenuItem("Hello");
Menu1.add(menuitem1);
menuitem1.addActionListener(this);
menuitem2 = new MenuItem("from");
Menu1.add(menuitem2);
menuitem2.addActionListener(this);
menuitem3 = new MenuItem("Java");
Menu1.add(menuitem3);
menuitem3.addActionListener(this);
Menubar1.add(Menu1);
setMenuBar(Menubar1);
show();
pack();
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == menuitem1){
uchwyt.lab.setText("hello");
}
if(event.getSource() == menuitem2){
uchwyt.lab.setText("from");
}
if(event.getSource() == menuitem3){
uchwyt.lab.setText("Java");
}
}
}
public class prz
{
static public void main(String argv[])
{
prz2 przykladowe=new prz2("tytul");
dwa drugie=new dwa();
przykladowe.uchwyt=drugie;
}
}
class dwa extends Frame{
Label lab=new Label("pierwotny",Label.LEFT );
dwa(){
Panel pan=new Panel();
pan.add(lab);
GridLayout gl=new GridLayout(2,2);
pan.setLayout(gl);
add(pan);
show();
pack();
reshape(200,200,100,100);
//repaint();
}
}
[/code]
Dopisane
Z JInternalFrame i JDesktopPane na dzień dzisiejszy nie jestem w stanie ci pomóc.
<quote>Bardzo surowa wersja ale jest tam przykład tego czego szukałeś,
wybierasz pozycje z menu w jednym oknie i zmienia się etykieta w drugim.
A co jak chce zmienić układ paneli w drugim oknie ?
i klasa dziedziczy po Frame zawiera przyciski i buttony oraz metody ktore zmieniają uklad paneli. To jak wtedy odnieść sie do calej klasy albo do jej calej zawartości .
Bo prubowalem tak;
uchwyt.metoda(); i nic sie nie dzieje ( metody normalnie dzialaly na tym samym oknie w jednej klasie)
Dzieki
Dzieki wlodi poradzilem sobie juz z tym.
Teraz chcę te dwa okna umieścić na desktopie, który będzie mial menu.
Z menu tego wybiore okno z ktorego bede sterowal tym drugim.
Wydaje mi sie ze potrzebne mi sa tutaj klasy JInternalFrame i JDesktopPane co Ty na to ?
I jeszcze jedno : czy w programie może być jedna czy kilka klas main
Pozdrawiam,
Robert