2

jtable のすべての列を同時に整列する方法はありますか? これを使用して:

DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment( JLabel.RIGHT );
JTAB_TABLE.getColumnModel().getColumn(0).setCellRenderer( rightRenderer );

1 つの列だけを揃えることができますが、すべてを揃える必要があります。

4

2 に答える 2

2

prepareRenderer(...)これを行うには、JTableでオーバーライドします。これは、すべてのカスタム レンダラーが JLabel であることを前提としています (デフォルトでは JLabels です)。それ以外の場合は、それを防ぐ必要があります。

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class TableDemo implements Runnable
{
  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(new TableDemo());
  }

  public void run()
  {
    JTable table = new JTable(5, 5)
    {
      @Override
      public Component prepareRenderer(TableCellRenderer renderer,
                                       int row, int col)
      {
        Component comp = super.prepareRenderer(renderer, row, col);
        ((JLabel) comp).setHorizontalAlignment(JLabel.RIGHT);
        return comp;
      }
    };
    table.setPreferredScrollableViewportSize(table.getPreferredSize());
    JScrollPane scrollPane = new JScrollPane(table);

    JFrame frame = new JFrame();
    frame.getContentPane().add(scrollPane);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}
于 2013-09-20T21:15:37.817 に答える