Hallo zusammen,
wie kann ich einen Zeilenumbruch bzw. eine automatische Anpassung der Zeilenhöhe in einer JTable
programmieren? Als Lösungsansatz habe ich beim googlen die Vererbung eines TextAreas gefunden.
Der Code hierzu sieht so aus:
Mein HauptCode sieht so aus:
Als Anfänger weiß ich leider nicht, wie ich jetzt den RowHeightCellRnderer in meinen HauptCode einbinde
bzw. aufrufe.
Könntet ihr mir da unter die Ärmel greifen?
Vielen Dank und viele Grüße
Sinus
wie kann ich einen Zeilenumbruch bzw. eine automatische Anpassung der Zeilenhöhe in einer JTable
programmieren? Als Lösungsansatz habe ich beim googlen die Vererbung eines TextAreas gefunden.
Der Code hierzu sieht so aus:
Java:
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class RowHeightCellRenderer extends JTextArea implements TableCellRenderer
{
/**
*
*/
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent (JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column ) {
setText( value.toString() ); // Value kann String mit \n enthalten
return this;
}
}
Mein HauptCode sieht so aus:
Java:
import javax.swing.*;
public class BeispielTabelle {
public JPanel erstelleTabelle() {
JPanel totalGUI = new JPanel();
//Titel der Tabelle
String[] title = {"EINS", "ZWEI", "DREI"};
//Tabellendaten
Object[][] playerdata = {
{new Integer(34), "Stefan", "hei du ei"},
{new Integer(85), "Dirk", "huhu du ku"},
{new Integer(32), "Patrick", "dumdi dumdi dummdi dumm di di didumm"},
{new Integer(10), "Anna", "blabla bla bla blabla bla bla blabla"},};
//Tabelle erstellen
JTable textTable = new JTable(playerdata,title);
//Spaltenbreiten festlegen
textTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // Autoresizing abschalten, sonst sind alle Spalten gleich breit:
textTable.getColumnModel().getColumn(0).setPreferredWidth(60);
textTable.getColumnModel().getColumn(1).setPreferredWidth(60);
textTable.getColumnModel().getColumn(2).setPreferredWidth(90);
//das Ganze scrollbar machen
JScrollPane scrollPane = new JScrollPane(textTable);
totalGUI.add(scrollPane);
return totalGUI;
}
private static void createAndShowGUI() {
//create main frame
JFrame mainFrame = new JFrame("");
BeispielTabelle test = new BeispielTabelle();
JPanel totalGUI = new JPanel();
totalGUI = test.erstelleTabelle();
totalGUI.setLayout(new BoxLayout(totalGUI, BoxLayout.Y_AXIS));
//visible mode
mainFrame.add(totalGUI); //integrate main panel to main frame
mainFrame.pack();
mainFrame.setVisible(true);
}
public static void main (String[] args) {
createAndShowGUI();
}//main
}//GUI_main
Als Anfänger weiß ich leider nicht, wie ich jetzt den RowHeightCellRnderer in meinen HauptCode einbinde
bzw. aufrufe.
Könntet ihr mir da unter die Ärmel greifen?
Vielen Dank und viele Grüße
Sinus
Zuletzt bearbeitet: