| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1170 人关注过本帖
标题:请指教:在swing中如何给单元格添加背景色?
只看楼主 加入收藏
angelnana
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2007-8-13
收藏
 问题点数:0 回复次数:3 
请指教:在swing中如何给单元格添加背景色?

如何在swing中给某一行,某一列,某几个连续的单元格,某几个离散的单元格添加背景颜色呢?这四种情况各有不同吗?
谢谢大家了!
以下是我的源代码,没有添加背景颜色的功能,该怎么改?

public class TableUseModel {
public static void main(String[] args){
JFrame frame = new InvestmentTableFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);


}
}

class InvestmentTableFrame extends JFrame{
public InvestmentTableFrame(){
setTitle("InvestmentTable");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
InvestmentTableModel model = new InvestmentTableModel(30,5,10);
JTable table = new JTable(model);
add(new JScrollPane(table));
Object last = model.getValueAt(5,3);
last.toString();
System.out.println("the number in (5,3) is : " + last);
}



private static final int DEFAULT_WIDTH = 400;
private static final int DEFAULT_HEIGHT = 200;
}

class InvestmentTableModel extends AbstractTableModel{
public InvestmentTableModel(int y,int r1,int r2){
years = y;
minRate = r1;
maxRate = r2;
}

public int getRowCount(){
return years;
}

public int getColumnCount(){
return maxRate - minRate +1;
}

public Object getValueAt(int r,int c){
return getValue(r,c);
}

public double getValue(int x,int y){
double value=x+y+1;
return value;
}


public String getColumnName(int c){
return (c+minRate)+"%";
}

public double getOne(int x,int y){
return getValue(x,y);
}

private int years;
private int minRate;
private int maxRate;
private static double INITIAL_BALANCE = 100000.0;

}

搜索更多相关主题的帖子: 单元格 swing中 源代码 frame public 
2007-10-17 14:25
hexiaoyuhit
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-7-16
收藏
得分:0 
做个标记 回来再看啦


2007-10-18 17:42
angelnana
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2007-8-13
收藏
得分:0 
怎么没有人回答我呢

2007-10-22 10:59
冷泉
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-3-30
收藏
得分:0 

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


public class RoundColorTable extends JFrame {
private String[] colname = {"第1列","第2列","第3列","第4列","第5列"}; //表头信息
private String[][] data = new String[10][5]; //表内容

//界面组件----------------------//
private JScrollPane scroPanel = new JScrollPane(); //中底层滚动面板
private DefaultTableModel model; //列表默认TableModel
private JTable table;

/**
* 构造方法 SelectionDemo()
*/
public RoundColorTable() {
makeFace();
addListener();
showFace();
}

/**
* 方法: 界面构建 makeFace()
*/
private void makeFace() {

//表内容数组 data[][] 赋值------------//
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 5; j++) {
data[i][j] = "( " + (j+1) + ", " + (i+1) + " )";
}
}

table = new JTable(model = new DefaultTableModel(data,colname));

//新建列表现器------------------------//
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {

if(row%2 == 0)
setBackground(Color.white); //设置奇数行底色
else if(row%2 == 1)
setBackground(new Color(206,231,255)); //设置偶数行底色

return super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
};
//设置列表现器------------------------//
for(int i = 0; i < colname.length; i++) {
table.getColumn(colname[i]).setCellRenderer(tcr);
}


scroPanel.getViewport().setBackground(Color.white);
scroPanel.getViewport().add(table);

//总体界面布局------------------------//
getContentPane().add(scroPanel, BorderLayout.CENTER);
}

/**
* 方法: 界面显示 showFace()
*/
private void showFace() {
setTitle("间隔色的 JTable");
setSize(500,400);
Toolkit tmpTK = Toolkit.getDefaultToolkit();
Dimension dime = tmpTK.getScreenSize();

setLocation(dime.width2 - 250, dime.height2 - 200);
show();
}

/**
* 方法: 添加事件监听 addListener()
*/
private void addListener() {
this.addWindowListener(new WindowAdapter(){ //添加窗口关闭事件
public void windowClosing(WindowEvent e){
setVisible(false);
dispose();
System.exit(0);
}
});
}


/**
* 程序入口 main()
*/
public static void main(String args[]) {
//获取设置系统风格-------------------//
try {
String laf = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(laf);
} catch (Exception e) {}

new RoundColorTable();
}
}

2007-10-25 22:19
快速回复:请指教:在swing中如何给单元格添加背景色?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019994 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved