Problem mit COLUMN_IDENTIFIERS

Devox

Mitglied
Hallo leute,

Ich will mir ein paar Daten aus meiner Datenbank holen, dass klappt auch
soweit. Allerdings hab ich Probleme damit die die Spaltennamen anzuzeigen.
Diese sind vordefiniert, müssen also nicht per MetaData oder so aus der Datenbank ausgelesen werden.

Hier mal mein Code, hoffe mir kann da jemand helfen.

Java:
public class Gui extends JFrame{
	
	public final static Vector COLUMN_IDENTIFIERS = new Vector() {
        {
            add("id");
            add("linkname");
            add("name");
            add("kategorie");
        }
    };
	 
	JLabel ltop = new JLabel("Name hinzufügen");
	JLabel ladd = new JLabel("Link hinzufügen");
	
	JTextField txt_top = new JTextField(20);
	JTextField txt_add = new JTextField(20);
	
	JButton btn_ladd = new JButton("Hinzufügen");
	JButton btn_get = new JButton("Get");
	JButton btn_export = new JButton("Liste Exportieren");
	
	JTable t_get;
	DefaultTableModel defaultTableModel;
	
	
	public Gui(){
		setLayout(null);
		
		defaultTableModel = new DefaultTableModel(1, 4);
        defaultTableModel.setColumnIdentifiers(COLUMN_IDENTIFIERS);
        t_get = new JTable(defaultTableModel);
		
		ltop.setBounds(50, 20, 100, 20);
		ladd.setBounds(50, 50, 100, 20);

		
		txt_top.setBounds(170, 20, 250, 20);
		txt_add.setBounds(170,50,250,20);
		
		btn_ladd.setBounds(430, 50, 100, 20);
		btn_get.setBounds(50,100,100,20);
		btn_export.setBounds(170,100,150,20);
		
		t_get.setBounds(50,150,500,175);
		
		add(ltop);
		add(ladd);
		add(txt_top);
		add(txt_add);
		add(btn_ladd);
		add(btn_get);
		add(btn_export);
		add(t_get);

		
		get g = new get();
		btn_get.addActionListener(g);
		
		add a = new add();
		btn_ladd.addActionListener(a);
		
		export e = new export();
		btn_export.addActionListener(e);
		
	}
	
	class export implements ActionListener{
		public void actionPerformed(ActionEvent ex){
			Export.writeFile();
		}
	}
		
	class add implements ActionListener{
		public void actionPerformed(ActionEvent ee){
			String link = txt_add.getText();
			String name = txt_top.getText();
			Add.adden(link, name);
		}
	}

	class get implements ActionListener{													
		public void actionPerformed(ActionEvent e) {
			
			Vector results = Get.getData();
            defaultTableModel.setDataVector(results, COLUMN_IDENTIFIERS);
            defaultTableModel.fireTableDataChanged();
		}
	}

	public static void main(String[] args) {
		Gui fenster = new Gui();
		fenster.setSize(600, 400);
		fenster.setLocation(200,300);
		fenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
		fenster.setTitle("LinkManager");
		fenster.setResizable(false);
		fenster.setVisible(true);
	}
}

mfg
 

Camill

Bekanntes Mitglied
http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html hat gesagt.:
Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately.

Mit anderen Worten: Wenn die JTable auf einer JScrollPane liegt werden die Spaltennamen automatisch angezeigt.
 

Devox

Mitglied
hmm,

verstehe ich jetzt nur bedingt. Hab das gerade ma ein bissel probiert, aber klappen tuts nicht.
Könntest du mir villt. ein bsp geben oder so?

mfg
 

Camill

Bekanntes Mitglied
Hier mal ein KSKB:
Java:
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Gui {

    public static void main(String[] args) {
	JFrame frame = new JFrame();
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setLocationRelativeTo(null);
	frame.setSize(600, 400);

	DefaultTableModel model = new DefaultTableModel(new String[][] { {
		"foo", "bar" } }, new String[] { "Col A", "Col B" });
	JTable table = new JTable(model);

	// keine Spaltennamen
	frame.getContentPane().add(table);

	// Spaltennamen vorhanden
	// frame.getContentPane().add(new JScrollPane(table));

	frame.setVisible(true);
    }
}
 

Devox

Mitglied
Ok vielen dank schonmal,

die Spaltennamen kriege ich jetzt angezeigt. Ein Problem bleibt allerdings noch. Wenn ich jetzt mit
über den "Get" Button meinen Datenbank Inhalt hole, werden meine Spaltennamen überschrieben und
durch den Datenbank Inhalt ersetzt. Ich denke das dieser Abschnitt das Problem ist, aber wie ich
das lösen könnte weiß ich leider auch nicht.

Java:
class get implements ActionListener{													
		public void actionPerformed(ActionEvent e) {
			
			Vector results = Get.getData();
            defaultTableModel.setDataVector(results, COLUMN_IDENTIFIERS);
            defaultTableModel.fireTableDataChanged();
		}
	}


mfg
 

Devox

Mitglied
Code sieht jetzt so aus.

Java:
public class Gui extends JFrame{
	
	public final static Vector COLUMN_IDENTIFIERS = new Vector() {
        {
            add("id");
            add("linkname");
            add("name");
            add("kategorie");
        }
    };
	 
    String[] liste = {"test1", "test2", "test3"};
    
	JLabel ltop = new JLabel("Name hinzufügen");
	JLabel ladd = new JLabel("Link hinzufügen");

	
	JTextField txt_top = new JTextField(20);
	JTextField txt_add = new JTextField(20);
	
	JList<String> l_kategorie = new JList<String>(liste);
	JScrollPane spl = new JScrollPane(l_kategorie);
	
	JButton btn_ladd = new JButton("Hinzufügen");
	JButton btn_get = new JButton("Get");
	JButton btn_export = new JButton("Liste Exportieren");
	
	JTable t_get;
	JScrollPane sp;
	DefaultTableModel defaultTableModel;
	
	
	public Gui(){
		setLayout(null);
		
		defaultTableModel = new DefaultTableModel(new String[][] { {
	        "id", "Linkname", "Name", "Kategorie" } }, new String[] { "Col A", "Col B", "Col C", "Col D" });
        //defaultTableModel.setColumnIdentifiers(COLUMN_IDENTIFIERS);
        t_get = new JTable(defaultTableModel);
        t_get.getTableHeader();
        sp = new JScrollPane(t_get);
        
		
		ltop.setBounds(50, 20, 100, 20);
		ladd.setBounds(50, 50, 100, 20);
		lDev.setBounds(50, 330, 600, 20);
		
		txt_top.setBounds(170, 20, 100, 20);
		txt_add.setBounds(170,50,250,20);
		
		spl.setBounds(290, 20, 100, 20);
		
		btn_ladd.setBounds(430, 50, 100, 20);
		btn_get.setBounds(50,100,100,20);
		btn_export.setBounds(170,100,150,20);
		
		t_get.setBounds(50,150,500,175);
		
		add(ltop);
		add(ladd);
		add(txt_top);
		add(txt_add);
		add(spl);
		add(btn_ladd);
		add(btn_get);
		add(btn_export);
		add(t_get);
		add(lDev);
		
		get g = new get();
		btn_get.addActionListener(g);
		
		add a = new add();
		btn_ladd.addActionListener(a);
		
		export e = new export();
		btn_export.addActionListener(e);
		
	}
	
	class export implements ActionListener{
		public void actionPerformed(ActionEvent ex){
			Export.writeFile();
		}
	}
		
	class add implements ActionListener{
		public void actionPerformed(ActionEvent ee){
			String link = txt_add.getText();
			String name = txt_top.getText();
			Add.adden(link, name);
		}
	}

	class get implements ActionListener{													
		public void actionPerformed(ActionEvent e) {
			
			Vector results = Get.getData();
            defaultTableModel.setDataVector(results, COLUMN_IDENTIFIERS);
            defaultTableModel.fireTableDataChanged();
		}
	}

	public static void main(String[] args) {
		Gui fenster = new Gui();
		fenster.setSize(600, 400);
		fenster.setLocation(200,300);
		fenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
		fenster.setTitle("LinkManager");
		fenster.setResizable(false);
		fenster.setVisible(true);
	}
}

mfg
 

Camill

Bekanntes Mitglied
Schau dir nochmal genau die Konstruktoren vom DefaultTableModel an, folgendes ist falsch:
Java:
defaultTableModel = new DefaultTableModel(new String[][] { {
            "id", "Linkname", "Name", "Kategorie" } }, new String[] { "Col A", "Col B", "Col C", "Col D" });

Erst Daten, dann Spaltenname. Oder direkt mit deinem Vector:
Java:
defaultTableModel = new DefaultTableModel(COLUMN_IDENTIFIERS, 0);

Dann muss [c]t_get.setBounds(50, 150, 500, 175);[/c] auch noch abgeändert werden, du musst der JScrollPane nun sagen wo sie liegen soll - nicht der JTable:
Java:
sp.setBounds(50, 150, 500, 175);

Zu guter letzt muss natürlich nicht die JTable sonder die JScrollPane dem Frame hinzugefügt werden:
Java:
add(sp);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3
O MySQL Problem mit Umlauten?! Datenbankprogrammierung 2
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
D MySQL Problem beim einfügen von Double-Zahlen Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
W Verständnis-Problem JPA Grundlagen Datenbankprogrammierung 5
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5
M JPA-Persist Problem Datenbankprogrammierung 2
7 Problem mit Hibernatekonfiguration Datenbankprogrammierung 13

Ähnliche Java Themen

Neue Themen


Oben