Mam 2 pytania.

  1. Jak automatycznie dopasować wysokość komórki w jTable do tekstu?
    Dodam, że zawijam wiersze.

  2. Jak zmienić kolor calego wiersza?

Z góry dzięki.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;


public class Tabela extends JFrame {
	
	static 		JPanel playerPanel = new JPanel();
	
	DefaultTableModel model = new DefaultTableModel(0,0);
	JTable tbl = new JTable(model);
	
	// ------------------------
	public static void main(String[] args) {
		
		new Tabela();
	}

	// ------------------------
	public Tabela(){
        
		super("Test");
		

		playerPanel.setBackground(Color.DARK_GRAY);
		add(playerPanel);

		createPanel();

		setSize(200, 400);
		setLocationRelativeTo(null);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
    }
// ------------------------

	private void createPanel()
    {
		// create object of table and table model

		// add header of the table
		String header[] = new String[] { "Prority", "Statulses" };

		// add header in table model     
		model.setColumnIdentifiers(header);
		//set model into the table object
		tbl.setModel(model);
		
		tbl.getColumnModel().getColumn(0).setMaxWidth(50);
		
		JScrollPane scrollEpg = new JScrollPane(tbl);

		playerPanel.setLayout(new BorderLayout());
		playerPanel.add(scrollEpg);
		
		TableColumn td = tbl.getColumn("Statulses");
		td.setCellRenderer(new Renderer());



		     // add row dynamically into the table      
		       model.addRow(new Object[] { "<html><b><h3>data</h3></b></html>", "Tutaj wypisuję rózne głupoty, nieważne co byle było duże, np opowieści śmiesznej treści\"" });
		       model.addRow(new Object[] { "<html><b><h3>data</h3></b></html>", "\"Tutaj wypisuję rózne głupoty, nieważne co byle było duże, np opowieści śmiesznej treści\"" });
		       model.addRow(new Object[] { "<html><b><h3>data</h3></b></html>", "\"Tutaj wypisuję rózne głupoty, nieważne co byle było duże, np opowieści śmiesznej treści\"" });
		   
		       updateRowHeights();
		       
    }
	
	private void updateRowHeights()
	{
	    try
	    {
	        for (int row = 0; row < tbl.getRowCount(); row++)
	        {
	            int rowHeight = 0;

	            for (int column = 0; column < tbl.getColumnCount(); column++)
	            {
	                Component comp = tbl.prepareRenderer(tbl.getCellRenderer(row, column), row, column);
	                rowHeight = Math.max(rowHeight, comp.getPreferredSize().height);
	            }

	           tbl.setRowHeight(row, rowHeight);
	        }
	    }
	    catch(ClassCastException e) {}
	}
	
	
}

//===========================================================================

class Renderer implements TableCellRenderer {

	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasValue,
			int row, int column) {

		JTextArea ta = new JTextArea();
		ta.setLineWrap(true);
		ta.setWrapStyleWord(true);
		ta.setText((String) value);
		return ta;
	}
}