JTable problem

Jorin5

Mitglied
Hallo Leute ein problem

Ich möchte gerne die Rows hinzufügen. Die daten befinden sich in meiner Arraylist. Ich habe es versucht aber irgendwie klappt es nicht. Was mache ich falsch ?

Kann mir jemand schnell helfen **** wäre nett

Danke

Hier meine Fehlermeldung:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
	at java.util.ArrayList.RangeCheck(Unknown Source)
	at java.util.ArrayList.get(Unknown Source)
	at GUI.GUI_search.main(GUI_search.java:78)
	at GUI.GUI_search.setDate(GUI_search.java:45)
	at Controller.XMLSearch.main(XMLSearch.java:162)
	at GUI.GUI$2.actionPerformed(GUI.java:86)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Code:
package GUI;

import Controller.*;

public class GUI_search {

	private JFrame frame;

	public static String name = "";
	public static String adress ="";
	public static String ContactNo ="";
	
	public static String[][] rowData1;
	public static ArrayList<ArrayList> myArray;
	public static  Vector <String> r = new Vector<String>();  
	/**
	 * @wbp.parser.entryPoint
	 */
	/*public void setDate(String name, String adress, String contactno) {

		this.name = name;
		this.adress = adress;
		this.ContactNo = contactno;
	}*/
	
	public void setDate(ArrayList<ArrayList> tmp_1) {
		this.myArray = tmp_1;
		
		
		main();
	}
	
	 public static void main()
	  {
		 String[] columnNames =  {
			      "Name", "Adresse","ContactNo"
			    };

		 DefaultTableModel model = new DefaultTableModel();
		 JTable table = new JTable(model);
		 
		 DefaultTableModel tbm = new DefaultTableModel();  
			//Vector <Vector> row = new Vector<Vector>();  
			//Vector <String> column = new Vector<String>();  
			tbm.addColumn("Sno"); //column.addElement("Sno");  
			tbm.addColumn("Item Name"); //column.addElement("Item Name");  
			//tbm.setDataVector(row,column);  
			JTable jTable1 = new JTable(tbm);  
		
		   
		 
			/*for (int i =0; i < myArray.size(); i++){
	    String[][] rowData = {
	    		
	    { myArray.get(i).get(0).toString(),myArray.get(i).get(1).toString(),(String) myArray.get(i).get(2).toString() }
	    };*/
		 
		 
			 
			 for (int i =0; i <= myArray.size(); i++){
				    String[][] rowData = {
				    		
				    { myArray.get(i).get(0).toString(),myArray.get(i).get(1).toString(),(String) myArray.get(i).get(2).toString() }
				    };
				    rowData1 = rowData;
				   
				    r.addElement(myArray.get(i).get(0).toString());  
				    
				  //and when I add it to row vector like this :  
				  tbm.addRow(r); // row.addElement(r
				    System.out.println("Rowdata:"+rowData1);
				    
				    
				   
				    
				    
				    
				}
			
			 
			 JFrame f = new JFrame();

			 
			   
			//This creates a table with two columns and no rows.  
			//Now at runtime when I want to add rows I create a row vector like this  
			   
			
			   
			//and when I add it to row vector like this :  
			tbm.addRow(r); // row.
			  
			 f.getContentPane().add( new JScrollPane( jTable1 ) );
			   f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			   f.pack();
			    f.setVisible( true );
	    
	    
	    
	    
			}
	    
			
	   
	  
	  }
 
Hallo,

in Zeile 60 überprüfst du in der for-Schleife nach
Java:
i <= myArray.size()
Änder's in "<" ab und es funktioniert.

Gruß
Martin
 
Zurück