Wysrodkowanie komórek w JTable

Odpowiedz Nowy wątek
2008-06-06 02:18

Rejestracja: 12 lat temu

Ostatnio: 7 lat temu

0

Witam!
Mam taki problem - jak można wyśrodkować tekst w każdej komórce JTabel??Z gory dzieki ;-)

Pozostało 580 znaków

bad_morning
2008-06-06 09:59
bad_morning
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();
    }
}

Pozostało 580 znaków

2008-06-07 02:55

Rejestracja: 12 lat temu

Ostatnio: 7 lat temu

0

Dzieki wielkie!:)

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0