当前位置:  技术问答>java相关

JTable中如何让它双击改变颜色?附代码~

    来源: 互联网  发布时间:2015-11-02

    本文导语:  package calendar; /**  * Title:   * Description:   * Copyright: Copyright (c) 2002  * Company:   * @author unascribed  * @version 1.0  */ import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import java.util.Calendar; import java.text.Si...

package calendar;

/**
 * 

Title: 


 * 

Description: 


 * 

Copyright: Copyright (c) 2002


 * 

Company: 


 * @author unascribed
 * @version 1.0
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.beans.*;
import javax.swing.border.*;
import javax.swing.event.*;

public class CalendarDlg extends JDialog implements Runnable
{
    private GregorianCalendar calendar = new GregorianCalendar();//日期
    private int intYear=2000;//年
    private int intMonth=1;//月
    private int intDay=1;//日
    private String FinalyDate="";//输出的日期字符窜
    private boolean isRun=true;//是否在运行

    //构造一个不可编辑的表模型 model
    private DefaultTableModel model=new DefaultTableModel(new Object[6][7],
                new Object[]{"日","一","二","三","四","五","六"})
    {
        public boolean isCellEditable(int row,int column)
        {
            return false;
        }
    };

    private TitledBorder titledBorder1;
    private JPanel jPanel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JComboBox MonthChoice = new JComboBox();//月份选择框
    private JLabel label3 = new JLabel();
    private JLabel label2 = new JLabel();
    private JScrollBar YearScrollbar = new JScrollBar();

    private JTable table = new JTable(model)
    {//日期表格
        public TableCellRenderer getCellRenderer(int row,int column)
        {
            return new DefaultTableCellRenderer()
            {//日期表格填充并设定组件
                public Component getTableCellRendererComponent(JTable table,
                                               Object value,
                                               boolean isSelected,
                                               boolean hasFocus,
                                               int row,
                                               int column)
                {
                    JLabel label=null;
                    if(value!=null)
                    {
                        label = new JLabel(value.toString(),JLabel.CENTER);
                        label.setOpaque(true);
                        label.setFont(table.getFont());
                        if(isSelected)//选择日期
                        {
                            label.setForeground(Color.white);
                            label.setBackground(Color.green);
                            label.setBorder(BorderFactory.createLineBorder(Color.yellow));
                        }
                        else//没有选择
                        {
                            label.setForeground(Color.black);
                            label.setBackground(Color.white);
                        }
                    }
                    return label;
                }
            };
        }
    };

    private JScrollPane jScrollPane1 = new JScrollPane(table);
    private JPanel jPanel2 = new JPanel();
    private JLabel TimeLabel = new JLabel();
    private BorderLayout borderLayout2 = new BorderLayout();
    private BorderLayout borderLayout3 = new BorderLayout();
    private BorderLayout borderLayout1 = new BorderLayout();
    private XYLayout xYLayout1 = new XYLayout();
    private JTextField YearTextField = new JTextField();//年
    private boolean isConfirm=false;

    public CalendarDlg(Frame parentFrame)
    {
        super(parentFrame,"",true);
        try
        {
            jbInit();
            enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        this.setSize(350,500);
        setLocation((d.width -getWidth())/2,(d.height-getHeight())/2) ;
    }

    //给 model 添加日期
    private void fillDate(int pYear,int pMonth,int pDay)
    {
        calendar = new GregorianCalendar(pYear,pMonth,1);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy'-'MM'-'dd");
        FinalyDate = sdf.format(new GregorianCalendar(pYear,pMonth,pDay).getTime());//获得当前日期
        TimeLabel.setText(FinalyDate);//下面显示日期 label

        int maxDayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        if(pDay>maxDayCount)
            pDay=maxDayCount;
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        int selectRow = 0;
        int selectCol = dayOfWeek;
        int count=0;
        int num=0;

        for(int i=0;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JTable里怎样在modal变化的时候,用代码让UI刷新?
  • 请问JTable的光标移动事件是什么?有没有示例代码?
  • jtable的问题,分析代码,现场给分
  • java命名空间javax.swing类jtable的类成员方法: jtable定义及介绍
  • JTable:如何在JTable中加入新的column和加入的row,如何在JTable中设置指定坐标上的值?
  • java命名空间javax.swing类jtable.accessiblejtable的类成员方法: jtable.accessiblejtable定义及介绍
  • 一个比较笨的问题:如何用两个Vector对象动态生成一个JTable?及从JTable里取得数据。
  • java命名空间javax.swing类jtable.accessiblejtable.accessiblejtablecell的类成员方法: jtable.accessiblejtable.accessiblejtablecell定义及介绍
  • 初始化jtable时,我只想生成一个只有表头,即列名,还没有数据行的jtable。该如何实现?
  • java命名空间javax.swing类jtable的类成员方法: selectionbackground定义及介绍
  • JTABLE的难题:我想在鼠标右键点击JTABLE时被点中的那一行被选中,如何实现?
  • java命名空间javax.swing类jtable的类成员方法: configureenclosingscrollpane定义及介绍
  • JTable里面点击cell下拉JTable
  • java命名空间javax.swing类jtable的类成员方法: setsurrendersfocusonkeystroke定义及介绍
  • 关于JTable:选择表里的一行,要求新弹出的一窗口里面TextField显示这行各个字段的内容,JTable有这样的ActionListener吗?
  • java命名空间javax.swing类jtable的类成员方法: getmodel定义及介绍
  • JTable的刷新问题!
  • java命名空间javax.swing类jtable的类成员方法: getrowcount定义及介绍
  • 怎样在JTable中得到和设置每个单元的值,给20分,大虾教我!
  • java命名空间javax.swing类jtable的类成员方法: getaccessiblecontext定义及介绍
  • 求救:如何在JTable中动态添加一行?
  • java命名空间javax.swing枚举jtable.printmode的类成员方法: normal定义及介绍
  • java中查询的数据库记录如何在JTable控件中显示?
  • java命名空间javax.swing类jtable的类成员方法: gettooltiptext定义及介绍
  • 如何得到JScrollPane中的JTable


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3