Vektor auslesen und als int Variable casten

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

irgendwie kriege ich es nicht hin :-(

Was? also ich habe ein Textfeld in welches der Benutzer zahlen eintippen kann. bei klick auf einen Button soll die aktuelle eingabe ausgelesen und im vektor gespeichert werden.

da eclipse mir hier keine fehler rauswirft tippe ich mal, dass ich (zumindest) bis hier keine fehler gemacht habe, aber hier noch mal:


Code:
public class Meter {

   public Vector<Double> meter = new Vector<Double>();
   public Object o1;
   public Integer m1;

   {

       Object o1 = (Object) meter.elementAt(0);
       m1 = ((Integer) o1).intValue();
       
   }

}

hier der listener in der Hauptklasse:

Code:
public class b1Lauscher implements ActionListener {
   public void actionPerformed(ActionEvent e) {
       String st = new String(t.getText());
       Double ins = Double.valueOf(st);
       Meter.meter.addElement(ins);
   }
}

und zum schluss die eingabe für das rechteck (eigene klasse)
Code:
import java.awt.*;

public class MeinCanvas extends Canvas {

	public void paint(final Graphics g) {

		final Dimension d = getSize();

		@SuppressWarnings("unused")
		final int w = getSize().width;
		final int h = getSize().height;

		g.setColor(new Color(244, 233, 0));
		g.fillRect((int) d.width / 5, 0, (int) Meter.m1, h);

}

	public Dimension getMinimumSize() {
		return new Dimension(150, 130);
	}

	public Dimension getPreferredSize() {
		return getMinimumSize();
	}
}


Ich habe das natürlich vorher schon ohne diese rumcasterei im actionlistener probiert, doch kam dann immer die meldung, dass er nicht von object nach"was auch immer" casten kann :-( und für das rechteck brauche ich ja eine int und kein object .

die aktuelle fehlermeldung sagt mir leider überhaupt nichts, aber ja vielleicht jemandem von euch:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MeinCanvas.paint(MeinCanvas.java:25)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276)
at sun.awt.RepaintArea.paint(RepaintArea.java:241)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:268)
at java.awt.Component.dispatchEventImpl(Component.java:4573)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)


weis vieleicht jemand rat?
 

Marco13

Top Contributor
Code:
public class Meter {

   public Vector<Double> meter = new Vector<Double>();
   public Object o1;
   public Integer m1;

   {

       Object o1 = (Object) meter.elementAt(0);
       m1 = ((Integer) o1).intValue();
       
   }

}

Da fehlt zumindest ein Methodenname....

Der einzige Grund, warum diese Exception auftreten kann, ist, dass in dieser Zeile
g.fillRect((int) d.width / 5, 0, (int) Meter.m1, h);
m1 null ist. Das KÖNNTE daran liegen, dass die unbenannte Methode oben nicht aufgerufen wird.

Poste notfalls ein compilierbares Stück code, wo der Fehler auftritt (alles zusammen in eine Datei, dass man es einfach mit Copy&Paste schnell rauskopieren, compilieren und testen kann)
 

Joker

Bekanntes Mitglied
Was? also ich habe ein Textfeld in welches der Benutzer zahlen eintippen kann. bei klick auf einen Button soll die aktuelle eingabe ausgelesen und im vektor gespeichert werden.

Ich hab dir genau das mal schnell zusammengebastelt:
Code:
class B1Lauscher implements ActionListener { 
    private MeinFrame frame;
    public B1Lauscher(MeinFrame frame) {
       this.frame=frame; 
    }
    
   public void actionPerformed(ActionEvent e) { 
       if(e.getSource().equals(frame.getOkButton())) {
           frame.add2Vector();  
       } else if(e.getSource().equals(frame.getPrintButton())) {
           frame.printVector();
       }
   } 
}

class MeinFrame extends JFrame { 
  
   private JTextField textField;
   private JButton okButton;
   private JButton printButton;
   private Vector<Double> doubleVec;
   
   public MeinFrame() {
       doubleVec = new Vector<Double>();
       textField = new JTextField();
       okButton = new JButton("OK");
       printButton = new JButton("Ausgabe");
       okButton.addActionListener(new B1Lauscher(this));
       printButton.addActionListener(new B1Lauscher(this));
       
       setLayout(new GridLayout(3,0));
       add(textField);
       add(okButton);
       add(printButton);
       setVisible(true);
       pack();
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
      
   public void add2Vector() {
       String str = textField.getText();   
       textField.setText("");
       if(str.equals("")) {
           return;
       } else {
           doubleVec.add(Double.parseDouble(str));
       }
   }
   
   public void printVector() {
       System.out.println("\n\nDerzeit im Vector:");
       for(Integer i: intVec) {
           System.out.println(i);
       }
       System.out.println();
   }

    public JButton getOkButton() {
        return okButton;
    }

    public JButton getPrintButton() {
        return printButton;
    }
   
   
   
   public static void main(String[] args) {
       new MeinFrame();
   } 
}

Allgemein solltest du dir vielleicht nochmal das Thema "static" anschauen.

edit: da war ein kleiner Tippfehler drin, statt parseInt gehört natürlich parseDouble dahin ;)
 
G

Guest

Gast
Hey super danke für die mühe!

hatte es gerade erst gesehen und wollte schon das gewünschte beispiel posten.

nur so ganz hilft mir die lösung noch nicht, sorry ich hätte dazu sagen müssen, dass ich den vektor noch anderweitig brauche.

Code:
public void add2Vector() { 
       String str = textField.getText();    
       textField.setText(""); 
       if(str.equals("")) { 
           return; 
       } else { 
           doubleVec.add(Double.parseInt(str)); 
       } 
   }

das lese ich doch richtig, dass bevor die daten in den vektor gehen erst in den typ integer umgewandelt werden oder?

nun leider muss ich neben der grafischen darstellung (deswegen ein integer für die rechteck zeichnung)
auch damit rechnen, dementsprechend brauche ich die werte schon als double, denn meißt werden wohl dezimahlzahlen eingegebn in das textfeld.


wenn ich deinen code jetzt implementieren möchte, muss ich doch folgendes machen, oder? :

ich habe:

Hauptklasse (entspricht dem Meinframe)

Vektorklasse (hier soll der übersichtlichkeit der vektorcode rein

lauscherklasse ist als anonyme innere klasse in der hauptklasse drinn

In der Hauptklasse:
Code:
	public class b1Lauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			final int i;
			Data data = new Data(combo.getSelectedItem() + "       ", t
					.getText(), t2.getText());
			((DefaultListModel) liste.getModel()).addElement(data);
		
       if(e.getSource().equals(getb1())) { 
           meter.add2Vector();  
       } 
   } 
		}
	}

In der Vektorklasse:
Code:
import java.util.Vector;

public class Meter {

	public Vector<Double> durchmesser;

	{
		durchmesser = new Vector<Double>();

	}

	public void add2Vector() {
		String str = Hauptklasse.t.getText();
		Hauptklasse.t.setText("");
		if (str.equals("")) {
			return;
		} else {
			durchmesser.add(Double.parseInt(str));
		}
	}

}

leider funktioniert das bei mir jetzt noch nicht wirklich.
wegen der double/integer sache könnte ich ja zur not auch einfach 2 vektoren anlegen.[/code]
 

Joker

Bekanntes Mitglied
das lese ich doch richtig, dass bevor die daten in den vektor gehen erst in den typ integer umgewandelt werden oder?

eigentlich sollte das in der Form sogar einen Fehler liefern, da hab ich mich vertippt, statt parseInt heißt die Methode natürlich parseDouble, habs oben reineditiert.

hier nochmal der komplette Code mit einer ausgelagerten Klasse Meter (hab auch noch die NumberFormatException abgefangen):

Code:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

class Meter {

    private Vector<Double> doubleVector;

    public Meter() {
        doubleVector = new Vector<Double>();
    }

    public void addElement(String val) {
        try {
            doubleVector.add(Double.parseDouble(val));
        } catch(NumberFormatException nfe) {
            System.out.println(val+" ist kein Wert vom Typ double!");
        }
    }

    public void printVector() {
        System.out.println("\n\nDerzeit im Vector:");
        for (Double d : doubleVector) {
            System.out.println(d);
        }
        System.out.println();
    }
}

class B1Lauscher implements ActionListener {

    private MeinFrame frame;

    public B1Lauscher(MeinFrame frame) {
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(frame.getOkButton())) {
            frame.add2Vector();
        } else if (e.getSource().equals(frame.getPrintButton())) {
            frame.getMeter().printVector();
        }
    }
}

class MeinFrame extends JFrame {

    private Meter meter;
    private JTextField textField;
    private JButton okButton;
    private JButton printButton;

    public MeinFrame() {
        meter = new Meter();
        textField = new JTextField();
        okButton = new JButton("OK");
        printButton = new JButton("Ausgabe");
        okButton.addActionListener(new B1Lauscher(this));
        printButton.addActionListener(new B1Lauscher(this));

        setLayout(new GridLayout(3, 0));
        add(textField);
        add(okButton);
        add(printButton);
        setVisible(true);
        pack();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void add2Vector() {
        String str = textField.getText();
        textField.setText("");
        if (str.equals("")) {
            return;
        } else {
            meter.addElement(str);
        }
    }

    public JButton getOkButton() {
        return okButton;
    }

    public JButton getPrintButton() {
        return printButton;
    }

    public Meter getMeter() {
        return meter;
    }

    public static void main(String[] args) {
        new MeinFrame();
    }
}

den Hauptfehler den du machst ist wie gesagt das Thema static. Anstatt sowas
Code:
 Hauptklasse.t.getText();
gehören da getter/setter hin, wie man zwei Klassen miteinander "bekannt" macht siehst du im Konstruktor des ActionListeners.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
H Vektor auslesen und durchsuchen Java Basics - Anfänger-Themen 4
B Vektor vs List Java Basics - Anfänger-Themen 4
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
O Matrix, Vektor Java Basics - Anfänger-Themen 9
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
M transposen Vektor transformieren Java Basics - Anfänger-Themen 8
M Vektor Rechnung Java Basics - Anfänger-Themen 6
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
B Vektor addieren Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
P Vektor im R3 drehen? Java Basics - Anfänger-Themen 14
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
A vektor bearbeiten?? Java Basics - Anfänger-Themen 9
V Position in einem Vektor Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
A Wie greif ich auf Elemente eines Arrays in einem Vektor zu? Java Basics - Anfänger-Themen 6
D Array? ArrayList? Vektor? ...? Java Basics - Anfänger-Themen 6
C OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben Java Basics - Anfänger-Themen 5
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
S Variable über den Vektor bestimmen Java Basics - Anfänger-Themen 20
J klasse vektor addition Java Basics - Anfänger-Themen 10
M Vektor Klasse Problem Java Basics - Anfänger-Themen 12
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
G Mothoden von Objekten in Vektor aufrufen Java Basics - Anfänger-Themen 4
G Probleme mit Datenstrukturen (Vektor, HashMap) Java Basics - Anfänger-Themen 5
T Koordinaten eines Vektor übergeben Java Basics - Anfänger-Themen 21
J Vektor in Vektor speichern? Java Basics - Anfänger-Themen 10
J Vektor null setzen Java Basics - Anfänger-Themen 10
R Vektor in verketteter Liste Java Basics - Anfänger-Themen 14
J Vektor + auf Elemente zugreifen funktioniert nicht Java Basics - Anfänger-Themen 11
G Vektor Java Basics - Anfänger-Themen 1
C "null" Element Vektor abfragen Java Basics - Anfänger-Themen 7
C vektor erschaffen Java Basics - Anfänger-Themen 2
C Ein Element aus Mehrdimensionalem Vektor lesen Java Basics - Anfänger-Themen 2
L Vektor befüllen? Java Basics - Anfänger-Themen 3
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
S kartesischer Vektor im n-dimensionalen Raum. Java Basics - Anfänger-Themen 7
G Objekte in einen Vektor speichern Java Basics - Anfänger-Themen 4
M Vektor, gefüllt mit Objekten einer selbstdefinierten Klasse Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
J tast-Eingabe_(Vektor)Skalar-produkt Java Basics - Anfänger-Themen 19
G elemente in einem vektor nach ihren eigenschaften sortieren Java Basics - Anfänger-Themen 2
G Problem clone und Vektor Java Basics - Anfänger-Themen 4
M Vektor sortieren Java Basics - Anfänger-Themen 7
P Vektor toString? Java Basics - Anfänger-Themen 2
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
I einlaggern von Objekten in ein Vektor Java Basics - Anfänger-Themen 10
G Vektor Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen


Oben