package zdzn.chenwh.TestFrame;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.Vector;import javax.swing.event.TableColumnModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;public class CalenderPanle extends JPanel {
private Calendar m_cld;
private JSpinner m_objYear;
private JComboBox m_objMonth;
private JTable m_DateTable;
public CalenderPanle(){
addComp();
this.addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent arg0) {
}
});
}
public void addComp(){
this.setLayout(new BorderLayout());
m_objYear=new JSpinner();
m_objMonth = new JComboBox();
JPanel jym=new JPanel();
jym.setLayout(new GridLayout(1,2));
jym.setAlignmentX(0.0f);
for(int i=0;i<12;i++){
m_objMonth.addItem((i+1) + "月");
}
m_objMonth.setMaximumSize(new Dimension(100,20));
jym.add(m_objMonth);
m_objYear.setMaximumSize(new Dimension(100,20));
jym.add(m_objYear);
this.add(jym,BorderLayout.NORTH);
DateTbModel tm=new DateTbModel();
m_DateTable = new JTable(tm);
m_DateTable.setDefaultRenderer(DataOfShow.class, new MyNameRender() );
m_cld=Calendar.getInstance();
tm.SetAllDate(m_cld); this.add(m_DateTable,BorderLayout.CENTER);
}
}
class DateTbModel extends AbstractTableModel
{
private int columncount=7;
private Vector v=new Vector();
private Vector<String> vtitle=new Vector<String>();
public DateTbModel()
{
vtitle.add("日");
vtitle.add("月");
vtitle.add("火");
vtitle.add("水");
vtitle.add("木");
vtitle.add("金");
vtitle.add("土");
}
public int getColumnCount()
{
// TODO Auto-generated method stub
return columncount;
} public int getRowCount()
{
// TODO Auto-generated method stub
return v.size();
} public Object getValueAt(int r, int c)
{
// TODO Auto-generated method stub
Object ret;
ret=((Vector)v.get(r)).get(c);
return ret;
}
public String getColumnName(int cloNum){
String name="";
name=(String)vtitle.get(cloNum);
return name;
}
public Class getColumnClass(int columnIndex) {
return DataOfShow.class;
}
public void SetAllDate(Calendar c)
{
boolean isAdd=true;
int m=c.getTime().getMonth();
DataOfShow ds;
v.clear();
//SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
c.add(Calendar.DAY_OF_MONTH, -c.getTime().getDate()+1);
c.add(Calendar.DAY_OF_MONTH, -c.getTime().getDay());
Vector row;
while(isAdd)
{
row=new Vector();
for(int i=0;i<7;i++)
{
ds=new DataOfShow();
ds.setDate(c.getTime());
if(m!=c.getTime().getMonth()){
ds.setBgColor(new Color(0.5f,0.5f,0.5f));
}else{
ds.setBgColor(new Color(0.8f,0.8f,0.8f));
}
row.add(ds);
c.add(Calendar.DAY_OF_MONTH, 1);
}
v.add(row);
if(c.getTime().getMonth()!=m){
isAdd=false;
}
}
this.fireTableDataChanged();
}
}class DataOfShow{
private Date date;
private JButton bt1;
private int workflg;
private Color bgColor;
public DataOfShow(){
//bgColor=new Color(0.0f,0.5f,0.5f);
workflg=0;
} public void setDate(Date date) {
this.date = date;
}
public Date getDate() {
return this.date;
} public void setWorkflg(int workflg) {
this.workflg = workflg;
}
public void setBgColor(Color c) {
this.bgColor = c;
}
public JButton getCompt(){
if(date!=null){
bt1=new JButton(date.getDate()+"");
bt1.setBackground(bgColor);
}else{
bt1=new JButton("");
bt1.setBackground(bgColor);
}
return bt1;
}
}
class MyNameRender implements TableCellRenderer{ /**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
public MyNameRender(){
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
// TODO Auto-generated method stub
DataOfShow installData;
if(value==null){
installData=new DataOfShow();
}else{
installData= (DataOfShow) value;
}
return installData.getCompt();
}
}
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.Vector;import javax.swing.event.TableColumnModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;public class CalenderPanle extends JPanel {
private Calendar m_cld;
private JSpinner m_objYear;
private JComboBox m_objMonth;
private JTable m_DateTable;
public CalenderPanle(){
addComp();
this.addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent arg0) {
}
});
}
public void addComp(){
this.setLayout(new BorderLayout());
m_objYear=new JSpinner();
m_objMonth = new JComboBox();
JPanel jym=new JPanel();
jym.setLayout(new GridLayout(1,2));
jym.setAlignmentX(0.0f);
for(int i=0;i<12;i++){
m_objMonth.addItem((i+1) + "月");
}
m_objMonth.setMaximumSize(new Dimension(100,20));
jym.add(m_objMonth);
m_objYear.setMaximumSize(new Dimension(100,20));
jym.add(m_objYear);
this.add(jym,BorderLayout.NORTH);
DateTbModel tm=new DateTbModel();
m_DateTable = new JTable(tm);
m_DateTable.setDefaultRenderer(DataOfShow.class, new MyNameRender() );
m_cld=Calendar.getInstance();
tm.SetAllDate(m_cld); this.add(m_DateTable,BorderLayout.CENTER);
}
}
class DateTbModel extends AbstractTableModel
{
private int columncount=7;
private Vector v=new Vector();
private Vector<String> vtitle=new Vector<String>();
public DateTbModel()
{
vtitle.add("日");
vtitle.add("月");
vtitle.add("火");
vtitle.add("水");
vtitle.add("木");
vtitle.add("金");
vtitle.add("土");
}
public int getColumnCount()
{
// TODO Auto-generated method stub
return columncount;
} public int getRowCount()
{
// TODO Auto-generated method stub
return v.size();
} public Object getValueAt(int r, int c)
{
// TODO Auto-generated method stub
Object ret;
ret=((Vector)v.get(r)).get(c);
return ret;
}
public String getColumnName(int cloNum){
String name="";
name=(String)vtitle.get(cloNum);
return name;
}
public Class getColumnClass(int columnIndex) {
return DataOfShow.class;
}
public void SetAllDate(Calendar c)
{
boolean isAdd=true;
int m=c.getTime().getMonth();
DataOfShow ds;
v.clear();
//SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
c.add(Calendar.DAY_OF_MONTH, -c.getTime().getDate()+1);
c.add(Calendar.DAY_OF_MONTH, -c.getTime().getDay());
Vector row;
while(isAdd)
{
row=new Vector();
for(int i=0;i<7;i++)
{
ds=new DataOfShow();
ds.setDate(c.getTime());
if(m!=c.getTime().getMonth()){
ds.setBgColor(new Color(0.5f,0.5f,0.5f));
}else{
ds.setBgColor(new Color(0.8f,0.8f,0.8f));
}
row.add(ds);
c.add(Calendar.DAY_OF_MONTH, 1);
}
v.add(row);
if(c.getTime().getMonth()!=m){
isAdd=false;
}
}
this.fireTableDataChanged();
}
}class DataOfShow{
private Date date;
private JButton bt1;
private int workflg;
private Color bgColor;
public DataOfShow(){
//bgColor=new Color(0.0f,0.5f,0.5f);
workflg=0;
} public void setDate(Date date) {
this.date = date;
}
public Date getDate() {
return this.date;
} public void setWorkflg(int workflg) {
this.workflg = workflg;
}
public void setBgColor(Color c) {
this.bgColor = c;
}
public JButton getCompt(){
if(date!=null){
bt1=new JButton(date.getDate()+"");
bt1.setBackground(bgColor);
}else{
bt1=new JButton("");
bt1.setBackground(bgColor);
}
return bt1;
}
}
class MyNameRender implements TableCellRenderer{ /**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
public MyNameRender(){
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
// TODO Auto-generated method stub
DataOfShow installData;
if(value==null){
installData=new DataOfShow();
}else{
installData= (DataOfShow) value;
}
return installData.getCompt();
}
}
tablePanel.setViewportView(m_DateTable); this.add(tablePanel, BorderLayout.CENTER);
或者 JScrollPane tablePanel = new JScrollPane(DateTable);
this.add(tablePanel, BorderLayout.CENTER);