Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để đặt màu cho các hàng thay thế của JTable trong Java?


A JTable là một lớp con của JComponent và nó có thể được sử dụng để tạo một bảng với thông tin được hiển thị trong nhiều hàng cột . Khi một giá trị được chọn từ JTable, TableModelEvent được tạo, được xử lý bằng cách triển khai TableModelListener giao diện.

Chúng tôi có thể đặt màu cho các hàng thay thế của JTable bằng cách ghi đè standardRenderer () phương thức của lớp JTable.

Cú pháp

public Component prepareRenderer(TableCellRenderer renderer, int row, int column)

Ví dụ

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class AlternateRowColorTableTest extends JFrame {
   public AlternateRowColorTableTest() {
      setTitle("AlternateRowColorTable Test");
      JTable table = new JTable(new Object[][] {{"115", "Ramesh"}, {"120", "Adithya"}, {"125", "Jai"}, {"130", "Chaitanya"}, {"135", "Raja"}}, new String[] {"Employee Id", "Employee Name"}) {
         public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
            Component comp = super.prepareRenderer(renderer, row, column);
            Color alternateColor = new Color(200, 201, 210);
            Color whiteColor = Color.WHITE;
            if(!comp.getBackground().equals(getSelectionBackground())) {
               Color c = (row % 2 == 0 ? alternateColor : whiteColor);
               comp.setBackground(bg);
               c = null;
            }
            return returnComp;
         }
      };
      add(new JScrollPane(table));
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new AlternateRowColorTableTest();
   }
}

Đầu ra

Làm cách nào để đặt màu cho các hàng thay thế của JTable trong Java?