|
| Problem med dotnotation Fra : Fihnn Holger |
Dato : 17-12-00 11:23 |
|
Jeg fået et problem med at kalde en instans af en klasse.
Her er et eks. der gerne skulle illustrere problemet:
public class UserInterface extends JFrame
{
private Network network //klassen Network og en instans af denne
.....
public UserInterface(Network network)
{
.....
this.network = network
.....
// Setting the option funktions
setUpdateInterval.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent action)
{
updateInterval = JOptionPane.showInputDialog(null, "How often should
simulationvalues be updated?", "Update interval in milliseconds:",
JOptionPane.QUESTION_MESSAGE);
updateIntervalValue = Integer.parseInt(updateInterval, 10);
network.setInterval(updateIntervalValue);
} //ActionPerformed
}); //ActionListener
}
Når jeg compiler kommer fejlen:
UserInterface.java:278: local variable network is accessed from within inner
class; needs to be declared final network.setInterval(updateIntervalValue);
På forhånd tak.
Fihnn
| |
Sir Galahad (20-12-2000)
| Kommentar Fra : Sir Galahad |
Dato : 20-12-00 22:31 |
|
Jeg er ikke så meget inde i applets, men forveksler du ikke instans
med metoder ??
Hver gang du kalder en instans, forstår jeg det på den måde at du
kalder en konstruktør X x = new X();
Correct me if I'm wrong.
Jeg ville hellere end gerne hjælpe hvis jeg ku'
"Fihnn Holger" <fihnn@hotmail.com> skrev i en meddelelse
news:4u0%5.3330$9t1.12674@twister.sunsite.dk...
> Jeg fået et problem med at kalde en instans af en klasse.
>
> Her er et eks. der gerne skulle illustrere problemet:
>
> public class UserInterface extends JFrame
> {
> private Network network //klassen Network og en instans af denne
> ....
>
> public UserInterface(Network network)
> {
> ....
> this.network = network
> ....
>
> // Setting the option funktions
> setUpdateInterval.addActionListener(new ActionListener()
> {
> public void actionPerformed(ActionEvent action)
> {
> updateInterval = JOptionPane.showInputDialog(null, "How often should
> simulationvalues be updated?", "Update interval in milliseconds:",
> JOptionPane.QUESTION_MESSAGE);
>
> updateIntervalValue = Integer.parseInt(updateInterval, 10);
>
> network.setInterval(updateIntervalValue);
> } //ActionPerformed
> }); //ActionListener
> }
>
> Når jeg compiler kommer fejlen:
> UserInterface.java:278: local variable network is accessed from within
inner
> class; needs to be declared final
network.setInterval(updateIntervalValue);
>
>
> På forhånd tak.
>
> Fihnn
>
>
>
>
| |
Fihnn Holger (21-12-2000)
| Kommentar Fra : Fihnn Holger |
Dato : 21-12-00 03:28 |
|
> Jeg er ikke så meget inde i applets, men forveksler du ikke instans
> med metoder ??
> Hver gang du kalder en instans, forstår jeg det på den måde at du
> kalder en konstruktør X x = new X();
> Correct me if I'm wrong.
> Jeg ville hellere end gerne hjælpe hvis jeg ku'
Jeg har fundet en løsning på problemet, og burde have skrevet, men jeg haft
lidt travlt (programmet er en del af en projekt der skal afleveres imorgen,
torsdag).
Problemet var at når man laver en actionlistener lave man i teorien en ny
klasse. Det betyder at den dotnotation man laver i actionlisteneren, peger
på et andet objekt end den ville gøre udenfor actionlisteneren.
Derfor bliver der fejl.
Du skal have tak for interessen.
Mvh.
Fihnn
| |
|
|