Object in Integer Vector einfügen

chett

Grünschnabel
Ein herzliches Hallo zusammen!
Ich bräuchte bei folgendem Problem hilfe;
es gibt:
- eine Tabelle namens tabelle welche Objecte darstellt.
- einen Integer Vector namens markiert
und nen ListSelectionListener der bei markieren einer Zeile den Wert aus der Tabelle in den Vector kopieren soll.

später werden dann Werte der Tabelle und Werte des Vectors vergleichen, bei überinstimmung wird ne action ausgeführt.

zuerst hatte ich nen normalen Vector (ohne Integer) da funktioniert das hinzufügen der Werte in den Vector ganz gut; nur konnte ich die Werte in der Tabelle nicht mit den Werten des Vectors vergleichen; auch Cast scheiterte
Object und Integer ging nicht.

Dann habe ich's umgebaut und nen Integer Vector genommen;
da habe ich allerdings das Problem, das ich nen Fehler bekomme, wenn ich das "Object " in de Vector speichern will;
Bin schon soweit, dass ich's sp versuchte:
markiert.add(Integer.getInteger((String)tabelle.getValueAt(selectedRow, 1)));

irgendwelche Ideen

hier noch der ´ganze Code:

Code:
package com.ibm.issav.applet;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.Serializable;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import com.ibm.issav2.appletbeans.AlarmInfo;
import com.ibm.issav2.appletbeans.AppletRequest;
import com.ibm.issav2.appletbeans.RequestType;


public class AlarmListApplet extends ISSAV2Applet implements ActionListener, WindowListener 
{
//	----GUI Variablen	
	private static final long serialVersionUID = 1L;
	private JButton 	loeschen, uebertragen,zurueck;
	private JLabel 		labelTitel;
	private JTable 		tabelle; 
	private Panel 		mitte, sueden,titel , test;

	private String 		servletName 		= "";
//	----------AlarmDaten------------

	private JCheckBox	action;
	private int 		alarmID;
	private int 		sensorID;
	private long 		timeStamp;
	private Vector 		alarmliste = new Vector();
	private Vector<Integer>		markiert = new Vector<Integer>();
	private AlarmInfo 	alarm=new AlarmInfo();
	private int 		user;
	private Object[] 	rowData = null;
	private AlarmListTable mt = null;
	protected static final int checkBoxDelay=10000;
	protected static final int normalDelay=2000;
	protected static final String loesch = "loeschen";
	private JScrollPane scrollPane = null;
	private ListSelectionModel rowSM = null;
	
	public AlarmListApplet() {
		try{
			setLayout(new BorderLayout());
			mt = new AlarmListTable();
			tabelle = new JTable(); 

			tabelle.setAutoCreateColumnsFromModel(true);		
			tabelle.setModel(mt);
			tabelle.setAutoCreateRowSorter(true);
			scrollPane = new JScrollPane(tabelle);
			tabelle.setPreferredScrollableViewportSize(new Dimension(500, 200));
			tabelle.getColumn("!").setMinWidth(25);
			tabelle.getColumn("!").setMaxWidth(25);
			tabelle.getTableHeader().setReorderingAllowed(false);
			tabelle.getTableHeader().setResizingAllowed(false);
			tabelle.getColumn("user").setMinWidth(30);
			tabelle.getColumn("user").setMaxWidth(30);
			tabelle.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
			rowSM = tabelle.getSelectionModel();
		
			rowSM.addListSelectionListener(new ListSelectionListener() {
				public void valueChanged(ListSelectionEvent ev) {
					//Ignore extra messages.
					if (ev.getValueIsAdjusting()) return;

					ListSelectionModel lsm = (ListSelectionModel)ev.getSource();
					if (lsm.isSelectionEmpty()) {
						System.out.println("No rows are selected.");
							}
					else {
						int selectedRow = lsm.getMinSelectionIndex();
						System.out.println("Row " + selectedRow + " is now selected.");
						System.out.println("AlarmID Tabelle ist:"+ tabelle.getValueAt(selectedRow, 1));
						try{
							markiert.add(Integer.getInteger((String)tabelle.getValueAt(selectedRow, 1)));
//							Integer.
//							System.out.println("Wert wurde in 'Markiert' eingetragen:" +markiert.);
							}
						catch(Exception e){
								System.out.println("Wert konnte nicht in den Vector übertragen werden!");
								e.printStackTrace();}
						}
//				;}
				
					try{
						for(int i=0; i<markiert.size();i++)
							System.out.println("Inhalt der Markiert Tabelle =" +markiert.elementAt(i));
						}catch(Exception e){e.printStackTrace();}
						
					}});

			test = new Panel();
			test.add(tabelle.getTableHeader());
			test.add(scrollPane);
			add("Center",test);
			
//			------Tabelle ende ---
		
//			------Panel für die AlarmButtons (Sueden)
			sueden = new Panel();
			sueden.setLayout(new GridLayout(1,0));
//			------Buttons für das zugehörige Panel werden erstellt
			loeschen = new JButton("Löschen");
			sueden.add(loeschen);
			loeschen.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent event){
					JOptionPane.showMessageDialog(null, "löschen, nach dem Buch");
				}
			});
			
			uebertragen = new JButton("Übertragen");
			sueden.add(uebertragen);
			uebertragen.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent event){
					JOptionPane.showMessageDialog(null, "Transfer, nach dem Buch");
				}
			});
			
			zurueck= new JButton("Zurückgeben");
			sueden.add(zurueck);
			zurueck.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent event){
					JOptionPane.showMessageDialog(null, "zurück");
				}
			});
			add("South", sueden);
			
			action = new JCheckBox();
			action.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent event){
					JOptionPane.showMessageDialog(null, "Gecheckt");
				}
			});
			
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}


	public void doAction(){
		readParameterForInit(normalDelay);
		try {				
			if (servletName==null || servletName.length()==0)return;
			URL servlet = new URL( servletName);
			AppletRequest newReq = new AppletRequest();
			newReq.setRequestType(RequestType.ALARMLISTE);
			Serializable objs[] = {newReq};
			Hashtable data = postObjects( servlet, objs);
			Vector vec = null;
			if(data!=null)
				vec = (Vector)data.get("alarmListe");
			setAlarmliste(vec);
		} catch (Exception e) {
			System.out.println("doActionFehler beim Servlet lesen");
			e.printStackTrace();
		}
		for (int i=0; alarmliste!=null && i<alarmliste.size();i++)
		{		
			try{
			
				if (i>=(mt.getRowCount())){						
					mt.addRow(new Vector());
					}
				int j=0;
				mt.setValueAt(Boolean.FALSE, i, j); j++;
				AlarmInfo alarm= (AlarmInfo)alarmliste.get(i);
				alarmID=alarm.getAlarmID();
				try {
					int element =0;
					System.out.println("Die Groeße des Vectors ist:" + markiert.size());
//					System.out.println("An erster Stelle steht:" + markiert.elementAt(element));
					for (int index=0; index<markiert.size(); index++){
							if((markiert.elementAt(index)).equals((Integer)alarmID)){
//								int temp =j-1;
//								mt.setValueAt(Boolean.TRUE, i, temp);
							}
							else
								System.out.println("AlarmID war noch nicht markiert...");
						}
				} catch (RuntimeException e) {
					System.out.println("Try-Catch-Fehler beim Verleich AlarmID und Markiert Vector");
					e.printStackTrace();
				}
				
					
				mt.setValueAt(""+alarmID, i , j);
				j++;
				AlarmInfo alarm2 = (AlarmInfo)alarmliste.get(i);
				sensorID=alarm2.getTrack().getTrack()[0].getSensorID();
				mt.setValueAt(""+sensorID, i, j);
				j++;
				AlarmInfo alarm3 = (AlarmInfo)alarmliste.get(i);
				timeStamp=alarm3.getTrack().getTrack()[0].getTimeStamp();
				final Date date = new Date(timeStamp);
				final SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
				mt.setValueAt(""+df.format(date), i, j);
				j++;		
				AlarmInfo alarm4 = (AlarmInfo)alarmliste.get(i);
				user=alarm4.getHandlingStatus();
				mt.setValueAt(""+user,i,j);
				
			}
			catch(Exception e){
				System.out.println("doAction Catch");
				e.printStackTrace();
				}
			
			try{
				for(int l=0; l<markiert.size();l++)
					System.out.println("Inhalt der Markiert Tabelle in der doAction =" +markiert.elementAt(l));
				}
				catch(Exception e){
					System.out.println("Try-Catch-Fehler bei der ausgabe aller werte von markiert");
					e.printStackTrace();}
			}
		}
		
	
	protected void readParameterForInit(int delay){
		servletName = getParameter("servletName");
		setDelay(delay);
	}

	protected void readParameterForInit() {
		servletName = getParameter("servletName");
		setDelay(2000);
	}
	public void setAlarmliste(Vector vector) {
		alarmliste = vector;
	}
//	public void sortTabelle() { 
//	}
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub
	}
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
	}


}
 
Seit wann kann man ein Object nicht auf einen Integer casten?

Java:
public static void main(String[] args) {
		Object obj = new Integer(5);
		if (obj instanceof Integer) {
			Integer test = (Integer) obj;
			System.out.println(test);
		}
		else {
			System.out.println("Expected type Integer but object has type "
					+ obj.getClass( ).getName( ));
		}
	}

Funktioniert wunderbar.

Ansonsten benutz mal Integer.parseInt und nicht getInt. getInt erwartet den Namen eines System Property und gibt deren int zurück und parst nicht den übergebenen String.
 
Zurück