如何设置JTable列和行颜色? [英] How do I set the JTable column and row color?

查看:116
本文介绍了如何设置JTable列和行颜色?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何设置 JTable 列和行颜色?

推荐答案

<这是一个简短的示例

import java.awt.Color;
import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;

public class JTableExample extends JFrame {

 String data[][] = {{"John", "Sutherland", "Student"},
   {"George", "Davies", "Student"},
   {"Melissa", "Anderson", "Associate"},
   {"Stergios", "Maglaras", "Developer"},
 };

 String fields[] = {"Name", "Surname", "Status"};

 public static void main( String[] argv ) {
  JTableExample myExample = new JTableExample( "JTable Example" );
 }

 /**
  * @param title
  */
 public JTableExample( String title ) {
  super( title );
  setSize( 150, 150 );
  addWindowListener( new WindowAdapter() {
   public void windowClosing( WindowEvent we ) {
    dispose();
    System.exit( 0 );
   }
  } );
  init();
  pack();
  setVisible( true );
 }

 private void init() {

  final CustomCellRenderer renderer = new CustomCellRenderer();        
  JTable jt = new JTable( data, fields ) {

   @Override
   public TableCellRenderer getCellRenderer(int row, int column) {
    // TODO Auto-generated method stub
    return renderer;
   }

  };
  JScrollPane pane = new JScrollPane( jt );
  getContentPane().add( pane );
 }


 /**
  * @author suhas
  *
  */
 private class CustomCellRenderer extends DefaultTableCellRenderer {

  /* (non-Javadoc)
   * @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
   */
  public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int column) {

   Component rendererComp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
     row, column);

   //Set foreground color
   rendererComp.setForeground(Color.red);

   //Set background color
   rendererComp .setBackground(Color.blue);

   return rendererComp ;
  }

 }

}

这篇关于如何设置JTable列和行颜色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆