EventDispatchThread.run() Zeile: nicht verfügbar

chett

Grünschnabel
Ein herzliche Hallo,
wieder mal hab ich ein seltsamen Fehler in meinem Code.
Beim debuggen, wird der Thread angehalten und ein Reiter mit dem Titel: EventDispatchThread.run() Zeile: nicht verfügbar geöffnet.

Drunter steht eigentlich nur:
Die Quelle wurde nicht gefunden.
(Button)
Quellensuchpfad bearbeiten...

Ich kann den Fehler auf folgende Codezeilen eingrenzen:

Code:
if (i>=mt.getRowCount())
{
      mt.addRow(new Vector());
	}

Kann mir jemand einen hint geben?

hier noch der genze code des Applets:
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 javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;

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;
	private String 		servletName 		= "";
	
//----------AlarmDaten------------
	private JCheckBox	action;
	private int 		alarmID;
	private int 		sensorID;
	private long 		timeStamp;
	private Vector		alarmliste = new Vector();
	private Vector		markiert = new Vector();
	private int 		user;
	private Object[] 	rowData = null;
	private MyTableModel mt = new MyTableModel();
	protected static final int normalDelay=2000;
	protected static final String LÖSCH = "loeschen";

	public AlarmListApplet() {
		
		setLayout(new BorderLayout());
//------Tabelle ---
		tabelle = new JTable(); 
		tabelle.setModel(mt);
		tabelle.setAutoCreateColumnsFromModel(true);

		JScrollPane scrollPane = new JScrollPane(tabelle);
		tabelle.setPreferredScrollableViewportSize(new Dimension(500, 200));
		tabelle.getColumn("!").setMinWidth(40);
		tabelle.getColumn("!").setMaxWidth(40);
		tabelle.getTableHeader().setReorderingAllowed(false);
    	tabelle.getTableHeader().setResizingAllowed(false);
		tabelle.getColumn("user").setMinWidth(30);
		tabelle.getColumn("user").setMaxWidth(30);
		tabelle.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		
		 ListSelectionModel 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()==true) {
                     System.out.println("No rows are selected.");
                 		} 
                 else {
                     int selectedRow = lsm.getMinSelectionIndex();
                     System.out.println("Row " + selectedRow + " is now selected.");
                     System.out.println("AlarmID sollte sein:"+ tabelle.getValueAt(selectedRow, 1));
//                     markiert.addElement((tabelle.getValueAt(selectedRow, 1)));
                     markiert.add((Integer) (tabelle.getValueAt(selectedRow, 1)));
                 		}
                 
            
         }
       });		
      
		Panel panel = new Panel();
		panel.add(tabelle.getTableHeader());
		panel.add(scrollPane);
		add("Center",panel); 
//------Tabelle ende ---
    
//------Panel für die AlarmButtons (Sueden)
		Panel 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, "Alarm wird gelöscht");
			}
		});
		
		uebertragen = new JButton("Übertragen");
		sueden.add(uebertragen);
		uebertragen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				JOptionPane.showMessageDialog(null, "Alarm wird an XY übertragen");
				
			}
		});
		zurueck= new JButton("Zurückgeben");
		sueden.add(zurueck);
		zurueck.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				JOptionPane.showMessageDialog(null, "Alarm ist nicht in meinem Zuständigkeitsbereich, wird zurückgegeben");
				
			}
		});
		add("South", sueden);
		
		action = new JCheckBox();
		action.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				JOptionPane.showMessageDialog(null, "Gecheckt");
			}
		});
	
	}

	public class MyTableModel extends DefaultTableModel implements TableModelListener 
	{
		private static final long serialVersionUID = 1L;
		private String[] columnNames = {"!","AlarmID", "SensorID", "Uhrzeit", "user"};
		private boolean[] sortColumnDesc;

		
			public int getColumnCount() {
		      return columnNames.length;
		    	}
//			public int getRowCount() {
//		      return data.length;
//		    	}
		    public String getColumnName(int col) {
		      return (String)columnNames[col];
		    	}
		    
//		    @SuppressWarnings("unchecked")
			public Class getColumnClass(int c) {
	            return getValueAt(0, c).getClass();
	        }
		    
//---Setzt Tabelle auf nicht editierbar; außer die Checkboxen...	      
		    public boolean isCellEditable(int row, int col) {
		    	return col==0;
		    	}
		    
	public void tableChanged(TableModelEvent e) {
		// TODO Auto-generated method stub
		
		}
	}
		
	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 = (Vector)data.get("alarmListe");
			setAlarmliste(vec);
		} catch (Exception e) {e.printStackTrace();}
		for (int i=0; i<alarmliste.size();i++)
		{		
			
			if (i>=mt.getRowCount())
			{
				mt.addRow(new Vector());
			}
			int j=0;
			mt.setValueAt(new Boolean(false), i, j); j++;	
			AlarmInfo alarm= (AlarmInfo)alarmliste.get(i);
			alarmID=alarm.getAlarmID();
			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);
		}
		 for (int i =0; i<= markiert.size(); i++)
     	 	System.out.println("Das steht in markiert:"+ markiert.get(i));
	}
	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
	}

}

Schon mal danke im voraus...
 
Nun du hast keinen Code für die Methode EventDispatchThread.run().

Lass außerdem mal Bugzilla o.ä. über deinen Code laufen. new Boolean sollte man z.B. nicht benutzen. Und um nen String aus nem int zu kriegen nimm doch Integer.toString(int).
 
Nun was mich mehr irritiert, ist das es den kompiler "vorher" auch nicht gestört hat,
dass ich für.rum() keinen Code habe...

Mit dem Hinweis auf new Boolean kann ich nichts anfangen.
Hab ich irgendwo boolean benutzt um nen string auszulesen?
Soweit ich moich nochj erinnere, stehen bei mir die booleans für Checkboxen in einer Tabelle, oder bring ich jetzt was durcheinander?
 
Man benutzt einfach kein new Boolean() damit wird unnötigerweise ein neues Objekt angelegt. Für Boolean gibt es die konstanten Boolean.FALSE und Boolean.TRUE.

Und ist es nun der Compiler oder Debugger der meckert?
 
Uups, mein Fehler; der Debugger meckert bzw steigt aus...

ich habe nen Breakpoint bei if(i>=mt.getRowCount()) gesetzt;
um nächsten step schmeißt er mir dann den Fehler mit Bezug auf die .run()...
 
Zurück