GUIBeginner: Wert außerhalb ChangeListener

Beitrag lesen

Hi,

public class Linien extends JPanel
{
    public SliderKreis sliderkreis;

wird da irgendwo auch eine Instanz von SliderKreis zugewiesen?

Ich habe nur das gemacht wie ich es auch hier reinkopiert habe. Oder meinst du in der sliderkreis klasse?
Ich bekomm halt die nullpointerexception, weiß aber nicht warum.

Naja, Du deklarierst eine Variable vom Typ SliderKreis. Da diese nicht initialisiert wird (es wird kein Wert zugewiesen), ist sie null.

Und wenn Du dann in
g.fillOval(10, 10, sliderkreis.x, sliderkreis.x);

versuchst, auf sliderkreis.x zuzugreifen, kann das nicht funktionieren, da sliderkreis ja null ist.

(Btw, steht da absichtlich zweimal sliderkreis.x?)

Nur weil Du irgendwo ein new SliderKreis() (oder ähnliches) aufrufst, wird noch lange nicht irgendwoanders eine Variable namens sliderkreis mit der Referenz auf diese SliderKreis-Instanz gefüllt ...

cu,
Andreas

ah ok!
nee ich hab das nur so gemacht bis jetzt. x ist in der sliderkreis-klasse im change listener "x=slider.getValue()". Aber mehr habe ich nicht gemacht. Also ist sie deswegen dann immer null :-/ ?
Wie bekomm ich diese denn initialisiert? Kannst du mir da eine Hilfe geben?
Vielen Dank! Hab auf jeden schonmal etwas dazu gelernt!!
Gruß
GUIBeginner

Hallo nochmal,
ja es steht zweimal "sliderkreis.x" , da ich ja das Oval in x und y gleichmäßig vergrößern möchte. Ich versteh das nicht ganz mit dem initialisieren.
Wahrscheinlich versteh ich das alles nicht so richtig :-(. Ich versuch vielleicht nochmal das Problem zu schildern falls ich es falsch erklärt habe.

Also ich habe mit einem GUI-Builder eine GUI erstellt. In der GUI habe ich ein JPanel und ein JSlider. Das JPanel habe ich dann mit der Linien.java Klasse "verbunden".
Also -> JPanel panel = new Linien(); .
Wenn ich jetzt in der Linienklasse das Oval zeichnen lasse zb: "drawOval(10,10,100,100);" dann zeichnet er auch das Oval im JPanel. Soweit so gut.
Jetzt sage ich im Changelistener -> " x = slider.getValue();"

Wie kann ich jetzt in Linien.java statt der "drawOval(10,10,100,100) den x Wert einsetzen damit sich die größe des Kreises mit dem Slider verstellt - also "drawOval(10,10,x,x) ??

Vielen Dank für eure Hilfe!!!