Witam!
Mam taki problem - jak można wyśrodkować tekst w każdej komórce JTabel??Z gory dzieki ;-)
0
0
import java.awt.Component;
import java.awt.Color;
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.DefaultTableModel;
class CenterRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(value instanceof JLabel) {
JLabel lab = (JLabel)value;
lab.setHorizontalAlignment(JLabel.CENTER);
return lab;
} else if(value instanceof Component) {
return (Component)value;
}
return new JLabel(String.valueOf(value),JLabel.CENTER);
}
}
public class Main extends JFrame {
public Main() {
super("Table test");
this.setSize(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());
String[] columnNames = {"A","B","C"};
String[][] data = new String[5][3];
for(int i=0; i<data.length; i++) {
for(int j=0; j<data[i].length; j++) {
data[i][j] = new String("x");
}
}
JTable table = new JTable(new DefaultTableModel(data, columnNames));
for(int i=0; i<columnNames.length; i++)
table.getColumnModel().getColumn(i).setCellRenderer(new CenterRenderer());
this.getContentPane().add(BorderLayout.CENTER, new JScrollPane(table));
this.setVisible(true);
}
public static void main(String args[]) {
new Main();
}
}
0
Dzieki wielkie!:)