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
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;
}
}