JTabel + Model / interaktiv Reihe einfügen

acky

Mitglied
hi,

ich schaff es partout nicht, eine reihe in ein JTable einzufügen. auch

DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow( string[] );

hat bei mir leider nicht funktioniert. lies sich zwar fehlerlos kompilieren, doch
beim ausführen tat eine "classCastException" auf.

wäre dankbar, wenn mir da jemand weiterhelfen könnten - bitte
keine (wichtigen) details verschweigen ;) . (da ich durch die technik
offenkundig noch nicht wirklich durchblicke!)

danke,
acky
 
Servus!

Code:
package pack;

/*
 * JTableExample2.java
 *
 * Created on 22. Dezember 2003, 22:02
 */

/**
 *
 * @author  Administrator
 */

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class JTableExample2 extends javax.swing.JFrame {

	private DefaultTableModel dtm;

	private final String[][] tabledata = { { "1abc", "1def", "1ghi" }, {
			"2abc", "2def", "2ghi" }, {
			"3abc", "3def", "3ghi" }
	};

	/** Creates new form JTableExample2 */
	public JTableExample2() {
		initComponents();

		jButton1.addMouseListener(new MouseAdapter() {

			public void mousePressed(MouseEvent e) {
				String[] str = new String[3];
				str[0] =
					jTextField1.getText() == null ? " " : jTextField1.getText();
				str[1] =
					jTextField2.getText() == null ? " " : jTextField2.getText();
				str[2] =
					jTextField3.getText() == null ? " " : jTextField3.getText();

				dtm.addRow(str);
				jTable1.updateUI();
			}
		});

	}

	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	private void initComponents() {
		GridBagConstraints gridBagConstraints;

		jPanel1 = new JPanel();
		jPanel2 = new JPanel();
		jScrollPane1 = new JScrollPane();
		jTable1 = new JTable();
		jPanel3 = new JPanel();
		jTextField1 = new JTextField();
		jTextField2 = new JTextField();
		jTextField3 = new JTextField();
		jButton1 = new JButton();

		getContentPane().setLayout(new FlowLayout());

		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				exitForm(evt);
			}
		});

		jPanel1.setLayout(new GridBagLayout());

		jPanel1.setMinimumSize(new Dimension(320, 240));
		jPanel1.setPreferredSize(new Dimension(320, 240));
		jPanel2.setBackground(new Color(102, 153, 255));
		jPanel2.setMinimumSize(new Dimension(320, 200));
		jPanel2.setPreferredSize(new Dimension(320, 200));
		jScrollPane1.setBackground(new Color(102, 153, 255));
		jScrollPane1.setMinimumSize(new Dimension(300, 180));
		jScrollPane1.setPreferredSize(new Dimension(300, 180));
		dtm =
			new DefaultTableModel(
				tabledata,
				new String[] { "Spalte 1", "Spalte 2", "Spalte 3" });

		jTable1.setModel(dtm);
		jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		jScrollPane1.setViewportView(jTable1);

		jPanel2.add(jScrollPane1);

		jPanel1.add(jPanel2, new GridBagConstraints());

		jPanel3.setBackground(new Color(255, 153, 0));
		jPanel3.setMinimumSize(new Dimension(320, 40));
		jPanel3.setPreferredSize(new Dimension(320, 40));
		jTextField1.setColumns(6);
		jPanel3.add(jTextField1);

		jTextField2.setColumns(6);
		jPanel3.add(jTextField2);

		jTextField3.setColumns(6);
		jPanel3.add(jTextField3);

		jButton1.setText("add");
		jPanel3.add(jButton1);

		gridBagConstraints = new GridBagConstraints();
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 1;
		jPanel1.add(jPanel3, gridBagConstraints);

		getContentPane().add(jPanel1);

		pack();
	}

	/** Exit the Application */
	private void exitForm(WindowEvent evt) {
		System.exit(0);
	}

	/**
	 * @param args the command line arguments
	 */
	public static void main(String args[]) {
		new JTableExample2().show();
	}

	// Variables declaration - do not modify
	private JButton jButton1;
	private JPanel jPanel1;
	private JPanel jPanel2;
	private JPanel jPanel3;
	private JScrollPane jScrollPane1;
	private JTable jTable1;
	private JTextField jTextField1;
	private JTextField jTextField2;
	private JTextField jTextField3;
	// End of variables declaration

}

Gruß Tom
 
dank dir!
so funktioniert´s. (weiss zwar noch nicht, warum meine urssprüngliche
version nicht, aber ... es funktioniert!)

hast du eine icq-nummer?
 
Zurück