JTable verbessern

Status
Nicht offen für weitere Antworten.

Corcovado

Bekanntes Mitglied
Hallo,
Ich will mit einer Tabelle einen Ausschnitt eines Textfiles zeigen und hab nun einige Probleme.
Zur Erklaerung hab ich folgendes Programm geschrieben.

Meine Probleme sind jedoch immer noch:
- Ich will die Tabelle statt Magenta gerne mit "normalen" Hintergrund haben, kann man das wo einstellen ?!
- Warum werden mir keine Spaltennamen angezeigt, wie macht man das ?
- Da meine Tabelle ja eine Vorschau auf ein Textfile praesentieren soll, sollten die Felder unveraenderbar sein, wie macht man das ?
- ...und schliesslich, wie kann ich allgemein, das Design und das Aussehen der Tabelle und des Buttons etwas verbessern ?
Freue mich auf Vorschlaege und Antworten, Danke !!!

Der Code hier sollte ein lauffaehiges Prg darstellen
Code:
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
public class Table03 extends JFrame{
	public Table03(){
		super( "Table Test");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
		this.setResizable(false);
		this.setLocation(100,100);
		this.setLayout(new GridLayout(0,1));
		// draw orange button
		this.add(drawButton());
		// draw table, it should be "default_grey" and not magenta ;)
		this.add(drawTable());
        
		this.pack();
        this.setVisible(true);
	}
		
	// table
	private JPanel drawTable(){	
		JPanel jpTable = new JPanel(new GridLayout(1,0));
		DataContent dc = new DataContent();
        final JTable table = new JTable(dc.getDataVector(), dc.getCol());
        
        table.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        table.setBackground(Color.magenta);
              
        jpTable.add(table);
        return jpTable;
	}
	
	// button
	private JPanel drawButton(){
		JPanel jpWhatever = new JPanel(new GridLayout(2,0));
		JPanel jpButton = new JPanel(new FlowLayout());				
		JButton button = new JButton("click");
		button.setBackground(Color.ORANGE);
		jpButton.add(button);
		jpWhatever.add(jpButton);
				
		return jpWhatever;
	}
	
	///////////////////////////////////////////////////
	public static void main(String[] args){
		JFrame.setDefaultLookAndFeelDecorated(true);
		Table03 t03 = new Table03();
		System.out.println("READY");
	}
}
 
////////////////////////////////////////////////////////
class DataContent extends DefaultTableModel{
	private Vector vecColNames;
	
	public DataContent(){
		setRowCount(7);
		setColumnCount(10);
		vecColNames = new Vector(getColumnCount());
		init();
	}
	
	private void init(){
		for(int i=0; i < getRowCount(); i++){
			for(int j=0; j < getColumnCount(); j++){
				setValueAt("bla", i, j);
			}
		}
	}
	
	public Vector getCol(){		
		String[] szCol = new String[getColumnCount()];
		
		for(int cnt=0; cnt<getColumnCount(); cnt++){
			vecColNames.add(String.valueOf(cnt));
		}
		setColumnIdentifiers(vecColNames);
		// but it shows no Column names, like 1,2,3,4,...
		return columnIdentifiers;
	}
}
 

Sky

Top Contributor
Hast das Prog einfach kopiert und keine Ahnung davon!?

Corcovado hat gesagt.:
- Ich will die Tabelle statt Magenta gerne mit "normalen" Hintergrund haben, kann man das wo einstellen ?!
Dann Lösche die Anweisung in Zeile 36:
Code:
table.setBackground(Color.magenta);


Corcovado hat gesagt.:
- Warum werden mir keine Spaltennamen angezeigt, wie macht man das?
Du musst deine Tabelle in ein JScrollPane einbetten:
Code:
jpTable.add(new JScrollPane(table));  //Vorher: jpTable.add(table);


Corcovado hat gesagt.:
- Da meine Tabelle ja eine Vorschau auf ein Textfile praesentieren soll, sollten die Felder unveraenderbar sein, wie macht man das ?
Überschreib die Methode isCellEditable
Code:
final JTable table = new JTable(dc.getDataVector(), dc.getCol()) {
  public boolean isCellEditable(int r, int c) {
    return false;
  }
};
 

Corcovado

Bekanntes Mitglied
Danke
Nein - ich habs schon selber geschrieben.

Magenta - Wenn ich die Zeile wegloesche is das ganze weiss, das will ich nich, ich will dieses Panel-Tarn-Grau haben, auch lightgrey bzw LIGHT_GREY is nich dasselbe und durchsichtig wollte er irgendwie nich ?

ScrollPane - Auf ScrollPane bin ich selber gekommen heute - das ist mein Erfolg des Tages. Ich finde es aber schon etwas umstaendlich, ich will nix rumscrollen oder so, sondern ne Spalten-Namen-Zeile, geht das nich einfacher?
Code:
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
panel.add(scrollPane);

Editable - Jetz kann ich die Felder zumindest nicht mehr veraendern. Gibts ne Moeglichkeit, dass ich nich mal mehr die Zeilen mit der Maus markieren kann?
 

Corcovado

Bekanntes Mitglied
Ausserdem - WAAAHH ich krieg die Kriese, ich seh grad, ich kann die Spalten ja auch per Mauszeiger verschieben, wie kann ich das abstellen?
 
B

Beni

Gast
Abschalten des Verschiebens:
Code:
jtable.getTableHeader().setReorderingAllowed( false )

Wieso du Scrollen und Verschieben allerdings abschalten willst, ist mir unerklärlich. Ein Benutzer findet soche Features praktisch, oder er benutzt sie einfach nicht.
Wenn ich von deinem Programm so eingeschränkt werde, fliegt es in hohen Bogen in die Mülltonne... :wink:
 

Corcovado

Bekanntes Mitglied
Super - jetz fehlt nur noch dass ich die Zellen nich mehr markieren kann... ;)

Tja das Programm dient einem sehr eingeschraenkten zweck, eigentlich nur eine Form von Datentabellen zu bearbeiten, die maschinell erstellt wurde. Zu diesem Zweck ist es nicht wichtig zu wissen, was in der 40000 Zeile steht, sondern einfach nur, ob die Spalten richtig getrennt sind. Dafuer hat es ein Feature, bei dem man den Separator aus einer Auswahl waehlen kann. Im Endeffekt heisst das, dass eigentlich die erste Zeile schon ausreichen wuerde, aber dann waere der Platz etwas leer und ich denke die "ersten" Zeilen erfuellen den Zweck vollkommen, ausserdem brauch dann der Rechner nich irgendwelche Sinnlosigkeiten im Hintergrund zu berechnen und formatieren. Ich bin aber __v.a.__ genau auch fuer solche Vorschlaege offen.

Ach ausserdem sind meine Programme so schlechte Malware, dass sie Dir bestimmt die Festplatte radioaktiv aetzen beim geringsten Versuch auch nur sie zu loeschen, falls sie jemals funktioniert haben sollten, denke ich kann man das schon als Erfolg werten !!!
 

Corcovado

Bekanntes Mitglied
Danke nochmal an alle, das mit dem Hintergrund hab ich nun rausgefunden:
Code:
table.setBackground(jpTable.getBackground());
heisst die Zeile, die statt Magenta eben hingehoert. Tja die Farbe "Panel.getBackground()" kannte ich noch gar nicht ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
H Swing JTextArea als TableCellRenderer in JTable - wie Zeilen selektieren? Allgemeine Java-Themen 47
D JTable mit JTextAreas in den Zellen Allgemeine Java-Themen 8
X Swing JTable zeigt nichts Allgemeine Java-Themen 4
G jTable aktualisieren?! Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
V JTable Externe Lib Allgemeine Java-Themen 2
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
T jTable Gestaffelte Überschriften Allgemeine Java-Themen 22
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
A JTable Bilder Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
A JTable - CellRange auslesen Allgemeine Java-Themen 2
A jTable Renderer Allgemeine Java-Themen 5
N JTable filtern Allgemeine Java-Themen 3
hdi JTable#print & Druckgröße Allgemeine Java-Themen 6
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
G JTable: ListSelectionListener removen Allgemeine Java-Themen 8
M JTable + ArrayList Allgemeine Java-Themen 3
G Aktualisierung einer JTable erfolgt nicht zuverlässig Allgemeine Java-Themen 14
E Hintergrund einer JTable änden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
P jTable getSelectedRow? Allgemeine Java-Themen 2
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
X xml aus Zip in JTable Allgemeine Java-Themen 2
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
H JTable per iText in PDF: Größenanpassung möglich? Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
E JTable wird nicht angezeigt Allgemeine Java-Themen 11
Screen ImageIcon in Cell der JTable Allgemeine Java-Themen 2
G JTable mit Keylistener geht nicht Allgemeine Java-Themen 3
C Swing JTable Vector aus DB adden Allgemeine Java-Themen 3
A Swing JTable Polymorphismus Allgemeine Java-Themen 2
trash super + JTable Allgemeine Java-Themen 7
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
L JTABLE setvalueat methode! Allgemeine Java-Themen 16
C Swing Daten zwischen JTable teilen Allgemeine Java-Themen 6
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
B JTable nach Icon sortieren Allgemeine Java-Themen 6
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
M jdesktop binding: jTable update nach Änderung... Allgemeine Java-Themen 3
D JTable mit GROUP BY Allgemeine Java-Themen 23
martin82 Regex - JTable - Filter Allgemeine Java-Themen 10
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
P JTable drucken Allgemeine Java-Themen 8
A JTable Feldwerte in JTextFelder mit blättern Allgemeine Java-Themen 5
DStrohma [Erledigt] Wieso kann ich Taste 'ENTER' in JTable nicht belegen? Allgemeine Java-Themen 2
M jTable Allgemeine Java-Themen 19
D jTable und TableModel Allgemeine Java-Themen 2
B Exception bei leerem JTable verhindern Allgemeine Java-Themen 10
A Observable BeansBinding an einer JTable bzw. JXTable Allgemeine Java-Themen 3
P Textfile -> Array -> JTable Allgemeine Java-Themen 9
S JTable Aktuelisieren ber Wie ? Allgemeine Java-Themen 4
MQue JComboBox in JTable Allgemeine Java-Themen 4
J Ergebnismenge eines SQL-Queries in JTable anzeigen Allgemeine Java-Themen 3
MQue JTable alles rechts Allgemeine Java-Themen 8
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
R JTable und Cell Renderer Allgemeine Java-Themen 3
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
S Welche Speicherung von Daten bei Kalendarfunktion der jtable Allgemeine Java-Themen 7
J keylistener auf jtable Allgemeine Java-Themen 19
C JTable, Abstand zwischen Zellen Allgemeine Java-Themen 2
G Eindeutiges Identifizieren einer JTable/Component z.laufzeit Allgemeine Java-Themen 2
D JTable -> ArrayIndexOutOfBoundsException bei Mausklick Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
G Daten in / für JTable beim Scrollen nachladen? Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
P JTable Allgemeine Java-Themen 2
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
P JTable setDataVector Allgemeine Java-Themen 2
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
P JTable Allgemeine Java-Themen 8
P JButtons mit JTable verknüpfen Allgemeine Java-Themen 16
G fehler bei JTable mit JDK1.6 Allgemeine Java-Themen 4
M CheckBox in JTable - ich verzweifle gleich Allgemeine Java-Themen 2
P JTable/Vector Allgemeine Java-Themen 5
P JTable Allgemeine Java-Themen 4
E JButton bleibt in der JTable Allgemeine Java-Themen 2
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
P JTable selektierte Zeile mitwandern Allgemeine Java-Themen 2
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
P JTable suchen in einer Spalte Allgemeine Java-Themen 24
G JTable wird nicht richtig aufgebaut Allgemeine Java-Themen 9
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
W Columns austauschen/verschieben von jtable Allgemeine Java-Themen 3
P 3rd party JTable libraries (freeware/opensource) Allgemeine Java-Themen 19
D JTable aus Eclipse Ok, kompeliert aber nicht Allgemeine Java-Themen 6
G mySQL und JTable Allgemeine Java-Themen 7
D JTable und Buttons Allgemeine Java-Themen 16
B JScrollPane in einer JTable aktualisieren? Allgemeine Java-Themen 9
G CheckBox in JTable Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben