S
Hallo zusammen!
Hier ist der Code... hoffentlich war's das, was ihr gemeint habt images/smiles/icon_smile.gif :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
////////////////////////////////////////////////////////////////////////////////
// CLASS: TableDemo
////////////////////////////////////////////////////////////////////////////////
/**
* In dieser Klasse wird gezeigt, wie man eine Tabelle (<code>JTable</code> ) in
* ein Frame einbindet und die Spaltenbreiten setzt. Die Klasse ist von
* <code>JFrame</code> abgeleitet und implementiert <code>ActionListener</code>.
*/
public class TableDemo extends JFrame implements ActionListener
{
////////////////////////////////////////////////////////////////////////////////
// PRIVATE CLASS ATTRIBUTES
////////////////////////////////////////////////////////////////////////////////
/**
* schließt das Frame
*/
private JButton okButton = new JButton("Schließen");
/**
* Die Spaltennamen
*/
private String[] columnNames = {"Vorname","Zuname","Alter","Beruf"};
/**
* Der Inhalt der Tabelle
*/
private String[][] data = {{"Paul","Müller","25","Student"},
{"Peter","Meier","45","Energieelektroniker"},
{"Frank","Kaiser","56","Frührentner"},
{"Heinz","Fröhlich","28","Sozialhilfeempfänger"},
{"Kerstin","Straus","16","Schülerin"}};
/**
* Die Tabelle
*/
private JTable myTable = new JTable(data,columnNames);
////////////////////////////////////////////////////////////////////////////////
// CONSTRUCTOR
////////////////////////////////////////////////////////////////////////////////
/**
* Der Konstruktor setzt die Eigenschaften des Frames und führt sämtliche
* Methoden der Klasse aus.
*/
public TableDemo()
{
setSize(300,200);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new JLabel("MyTableDemo"), BorderLayout.NORTH);
getContentPane().add(new JScrollPane(myTable), BorderLayout.CENTER);
getContentPane().add(okButton, BorderLayout.SOUTH);
// Damit das JScrollPane überhaupt funktioniert, muss AUTO_RESIZE auf OFF
// gesetzt werden...
myTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
setTableColumnSize();
setVisible(true);
okButton.addActionListener(this);
}
////////////////////////////////////////////////////////////////////////////////
// setTableColumnSize
////////////////////////////////////////////////////////////////////////////////
/**
* Diese Methode setzt die Spaltengrößen der Tabelle
*/
private void setTableColumnSize()
{
TableColumn column = null;
// Wir springen durch alle vorhandenen Spalten
for(int i = 0; i < myTable.getColumnCount(); i++)
{
column = myTable.getColumnModel().getColumn(i);
// Hier wird die Standardgröße der Spalte gesetzt. Wird die Tabelle
// beim Programmstart angezeigt, hat jede Spalte eine Größe von 100
column.setPreferredWidth(100);
// Mit diesem Aufruf bestimmt man die maximale Größe einer Spalte
column.setMaxWidth(150);
// Mit diesem Aufruf bestimmt man die minimale Größe einer Spalte
column.setMinWidth(50);
// Will man dem Benutzer die Möglichkeit der Veränderung der Spaltenbreiten
// vorenthalten, muss man einfach setResizeable auf false setzen.
column.setResizable(true);
}
}
////////////////////////////////////////////////////////////////////////////////
// actionPerformed
////////////////////////////////////////////////////////////////////////////////
/**
* Die Methode sorgt dafür, dass beim Betätigen des 'okButtons' das Programm
* beendet wird.
* @param e Das <code>ActionEvent</code>
*/
public void actionPerformed(ActionEvent e)
{
if(okButton.getActionCommand().equals(e.getActionCommand()))
{
System.exit(0);
}
}
////////////////////////////////////////////////////////////////////////////////
// MAIN
////////////////////////////////////////////////////////////////////////////////
/**
* Die Main-Methode.
* @param args Es müssen beim Programmstart keine Argumente übergeben werden!
*/
public static void main(String[] args)
{
TableDemo tableDemo = new TableDemo();
}
}//class
bis denn
Stefan
[ Dieser Beitrag wurde am 07.02.2002 um 01:06 Uhr von Ste.fun editiert. ]