Forum » Programiranje » [Java] CardLayout && windowListener
[Java] CardLayout && windowListener

alum ::
ja vem...ze spet imam tezavo...
imam torej ustvarjen Razporejevalnik, ki deduje od Frame-a...znotraj razporejevalnika je CardLayout...
Vsaka karta je locen razred, ki deduje od Panel-a...
sedaj bi rad dodal WindowListener-e za razlicne dogodke...z actionListener-i ni bilo tezav, medtem ko windowListenera nikakor nemorem dodat.
tega sem dodal v karto( razred, ki deduje od panel-a), vendar mi pri prevajanju javi napako.
IzpisStanja.java:50: cannot resolve symbol
symbol : method addWindowListener (anonymous java.awt.event.WindowAdapter)
location: class IzpisStanja
addWindowListener( new WindowAdapter (){
^
Pa se koda:
import java.awt.*;
import java.awt.event.*;
import javax.swing.SwingConstants;
public class IzpisStanja extends Panel{
private Razporejevalnik razporejevalnik;
private BorderLayout blMain = new BorderLayout();
private GridBagLayout glTipkovnica = new GridBagLayout();
private FlowLayout flZaslon = new FlowLayout( SwingConstants.CENTER, 60,60 );
private Panel zaslon = new Panel();
private Panel tipkovnica = new Panel();
// gradniki na tipkovnici
private Button btnNazaj = new Button( "Nazaj" );
// gradniki na zaslonu
private Label lbIzpisStanja = new Label( "Stanje na racunu je: " );
// omejitve za gradnike na tipkovnici
private GridBagConstraints gumbNazajOmejitve = new GridBagConstraints(2,1,1,1,1,1,GridBagConstraints.CENTER,
GridBagConstraints.NONE, new Insets(1,1,1,1), 2,2);
public IzpisStanja(Razporejevalnik r, final Seznam banka) {
// referenca na glavni Layout
this.razporejevalnik = r;
// delo z zaslonom
zaslon.setLayout( flZaslon );
zaslon.add( lbIzpisStanja );
// delo z tipkovnico
tipkovnica.setLayout( glTipkovnica );
tipkovnica.add( btnNazaj, gumbNazajOmejitve );
// delo z glavnim layoutom
setLayout( blMain );
add ( "North", zaslon );
add( "South", tipkovnica );
// eventi
btnNazaj.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e){
razporejevalnik.getRazporejevalnik().show( razporejevalnik, razporejevalnik.KARTA2 );
}
});
addWindowListener( new WindowAdapter (){
public void windowOpened(){
System.out.println( "da" );
}
});
}
}
imam torej ustvarjen Razporejevalnik, ki deduje od Frame-a...znotraj razporejevalnika je CardLayout...
Vsaka karta je locen razred, ki deduje od Panel-a...
sedaj bi rad dodal WindowListener-e za razlicne dogodke...z actionListener-i ni bilo tezav, medtem ko windowListenera nikakor nemorem dodat.
tega sem dodal v karto( razred, ki deduje od panel-a), vendar mi pri prevajanju javi napako.
IzpisStanja.java:50: cannot resolve symbol
symbol : method addWindowListener (anonymous java.awt.event.WindowAdapter)
location: class IzpisStanja
addWindowListener( new WindowAdapter (){
^
Pa se koda:
import java.awt.*;
import java.awt.event.*;
import javax.swing.SwingConstants;
public class IzpisStanja extends Panel{
private Razporejevalnik razporejevalnik;
private BorderLayout blMain = new BorderLayout();
private GridBagLayout glTipkovnica = new GridBagLayout();
private FlowLayout flZaslon = new FlowLayout( SwingConstants.CENTER, 60,60 );
private Panel zaslon = new Panel();
private Panel tipkovnica = new Panel();
// gradniki na tipkovnici
private Button btnNazaj = new Button( "Nazaj" );
// gradniki na zaslonu
private Label lbIzpisStanja = new Label( "Stanje na racunu je: " );
// omejitve za gradnike na tipkovnici
private GridBagConstraints gumbNazajOmejitve = new GridBagConstraints(2,1,1,1,1,1,GridBagConstraints.CENTER,
GridBagConstraints.NONE, new Insets(1,1,1,1), 2,2);
public IzpisStanja(Razporejevalnik r, final Seznam banka) {
// referenca na glavni Layout
this.razporejevalnik = r;
// delo z zaslonom
zaslon.setLayout( flZaslon );
zaslon.add( lbIzpisStanja );
// delo z tipkovnico
tipkovnica.setLayout( glTipkovnica );
tipkovnica.add( btnNazaj, gumbNazajOmejitve );
// delo z glavnim layoutom
setLayout( blMain );
add ( "North", zaslon );
add( "South", tipkovnica );
// eventi
btnNazaj.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e){
razporejevalnik.getRazporejevalnik().show( razporejevalnik, razporejevalnik.KARTA2 );
}
});
addWindowListener( new WindowAdapter (){
public void windowOpened(){
System.out.println( "da" );
}
});
}
}

Nerdor ::
Men Eclipse vrže tole vn, da s to vrstico ni uredu:
"private Razporejevalnik razporejevalnik;"
Kaj je ta Razporejevalnik !=? Kje je originalno ta razred definiranm, kje je implementiran !?
"private Razporejevalnik razporejevalnik;"
Kaj je ta Razporejevalnik !=? Kje je originalno ta razred definiranm, kje je implementiran !?
... for lifetime!
Zgodovina sprememb…
- spremenil: Nerdor ()

alum ::
ok...verjetno je gornji primer prevec komplekesen, za resevanje tega problema...jas sem preprican, da je nekaj narobe z windowlistneri...zato navajam krajsi primer, ki izpise isto napako...
import java.awt.*;
import java.awt.event.*;
class asdf extends Frame{
public asdf(){
BorderLayout f = new BorderLayout( 5, 5 );
setLayout( f );
Button b1 = new Button("Bla1");
Button b2 = new Button("Bla2");
Button b3 = new Button("Bla3");
Button b4 = new Button("Bla4");
Button b5 = new Button("Bla5");
add("West", b1);
add("East", b2);
add("South", b3);
add("Center", b4);
add("North", b5);
setSize(300, 300);
/*addWindowListner( new WindowAdapter (){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});*/
}
}
public class test{
public static void main(String [] args){
asdf ena = new asdf();
ena.show();
}
}
napaka:
F:\java_vaje\test>javac *.java
test.java:25: cannot resolve symbol
symbol : method addWindowListner (anonymous java.awt.event.WindowAdapter)
location: class asdf
addWindowListner( new WindowAdapter (){
^
1 error
import java.awt.*;
import java.awt.event.*;
class asdf extends Frame{
public asdf(){
BorderLayout f = new BorderLayout( 5, 5 );
setLayout( f );
Button b1 = new Button("Bla1");
Button b2 = new Button("Bla2");
Button b3 = new Button("Bla3");
Button b4 = new Button("Bla4");
Button b5 = new Button("Bla5");
add("West", b1);
add("East", b2);
add("South", b3);
add("Center", b4);
add("North", b5);
setSize(300, 300);
/*addWindowListner( new WindowAdapter (){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});*/
}
}
public class test{
public static void main(String [] args){
asdf ena = new asdf();
ena.show();
}
}
napaka:
F:\java_vaje\test>javac *.java
test.java:25: cannot resolve symbol
symbol : method addWindowListner (anonymous java.awt.event.WindowAdapter)
location: class asdf
addWindowListner( new WindowAdapter (){
^
1 error
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Puzzle 15 kodaOddelek: Programiranje | 1279 (1152) | Serial |
» | [JAVA] branje iz datotekeOddelek: Programiranje | 2435 (2070) | Bela01 |
» | [Java]VprašanjaOddelek: Programiranje | 2128 (1596) | Bela01 |
» | JAVA kako se premikati v Card layoutuOddelek: Programiranje | 1257 (1165) | matjazx |
» | [Java] ZmešnjavaOddelek: Programiranje | 2099 (1604) | ]Fusion[ |