Java中JTable的更新。万年历 JAVAjtable 更新页面设置表格单元不可编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.Calendar; public class CalendarBean { // 日期类 int year ,month , nextDay; Calendar calendar = Calendar.getInstance(); public void setYear(int year){ this.year = year; } public void setMonth(int month){ this.month = month; } // 根据年月,在二维表格中按真实顺序排位 public String[][] getCalendar(){ String a[][] = new String[6][7]; Calendar 日历 = Calendar.getInstance(); 日历.set(year,month-1,1); int 星期几 = 日历.get(Calendar.DAY_OF_WEEK)-1; int day = 0; // 判断一个月有多少天 if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){ day = 31; } if(month==4 || month==6 || month==9 || month==11){ day = 30; } if(month == 2){ if(((year%4==0)&&(year%100!=0))||(year%400==0)){ day = 29; }else{ day = 28; } } // 二维数组依次排序 nextDay = 1; for(int k=0; k<6; k++){ if(k == 0){ for(int j=星期几; j<7; j++){ a[k][j] = "" + nextDay; nextDay++; } }else{ for(int j=0; j<7 && nextDay<=day; j++){ a[k][j] = "" + nextDay; nextDay++; } } } return a; // 返回二维当前年月数组 } } import java.awt.BorderLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ListSelectionModel;import javax.swing.plaf.basic.BasicButtonListener;public class SelectetimeTest extends JDialog implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private JPanel p; private JScrollPane sp; private JTextField tfyear, tfmonth; private JLabel lbyear, lbmonth; private JTable tbtime; private JButton button1, button2, button3; private Object cells[][]; private String[] cocumnNames = {"日", "一", "二", "三", "四", "五", "六"}; private JRadioButton timequery, linequery; private JTextField from, arrivel, leavetime; private int inputMonth = 0, inputYear = 0; private String strmonth; private Calendar calendar; private ListSelectionModel selectionMode; private int counter = 0; public SelectetimeTest(JFrame f) { //初始化信息 super( f, "选择日期", true); p = new JPanel(); CalendarBean calendarbean = new CalendarBean(); calendar = Calendar.getInstance(); inputYear = calendar.get(Calendar.YEAR); inputMonth = calendar.get(Calendar.MONTH) + 1; calendarbean.setYear(inputYear); calendarbean.setMonth(inputMonth); cells = calendarbean.getCalendar(); button1 = new JButton("<<"); button2 = new JButton("今天"); button3 = new JButton(">>"); tfyear = new JTextField(4); tfyear.setText(inputYear + ""); tfmonth = new JTextField(2); tfmonth.setText(inputMonth + ""); lbyear = new JLabel("年"); lbmonth = new JLabel("月"); tbtime = new JTable(cells, cocumnNames); sp = new JScrollPane(tbtime); tbtime.setCellSelectionEnabled(true); tbtime.isCellEditable(7, 5); //设置组件坐标及大小 button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); //添加信息到面板 p.add(button1); p.add(button2); p.add(button3); p.add(tfyear); p.add(lbyear); p.add(tfmonth); p.add(lbmonth); //设置窗体 this.add(p, BorderLayout.NORTH); this.add(sp); this.setSize(300, 200); this.setLocation(800, 350); this.setResizable(false); } public void actionPerformed(ActionEvent e) { Object source = e.getSource(); //如果信号源在第一个选择键上 if (source == button3) { counter++; inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter; if (inputMonth > 12) { if (inputMonth % 12 == 0) { inputYear = calendar.get(Calendar.YEAR) + ((inputMonth / 12) - 1); inputMonth = 12; } else { inputYear = calendar.get(Calendar.YEAR) + (inputMonth / 12); inputMonth = inputMonth % 12; } } CalendarBean calendarbean = new CalendarBean(); calendarbean.setYear(inputYear); calendarbean.setMonth(inputMonth); cells = calendarbean.getCalendar(); tfyear.setText(inputYear + ""); tfmonth.setText(inputMonth + ""); tbtime.revalidate(); } //如果信号源在第二个选择键上 /*if (source == selecte2) { AddLine add = new AddLine(); add.setVisible(true); this.setVisible(false); }*/ //如果信号源在第三个选择键上 if (source == button2) { inputYear = calendar.get(Calendar.YEAR); inputMonth = calendar.get(Calendar.MONTH) + 1; CalendarBean calendarbean = new CalendarBean(); calendarbean.setYear(inputYear); calendarbean.setMonth(inputMonth); cells = calendarbean.getCalendar(); tfyear.setText(inputYear + ""); tfmonth.setText(inputMonth + ""); tbtime = new JTable(cells, cocumnNames); } //如果信号源在更改信息上 if (source == button1) { counter--; inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter; if (0 < inputMonth && inputMonth < 12) { inputYear = calendar.get(Calendar.YEAR); inputMonth = inputMonth % 12; } else if (inputMonth == 0){ inputYear = calendar.get(Calendar.YEAR) - 1; inputMonth = 12; } else { if (inputMonth % 12 == 0) { inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1); inputMonth = 12; } else { inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1); inputMonth =12 - (-(inputMonth % 12)); } } CalendarBean calendarbean = new CalendarBean(); calendarbean.setYear(inputYear); calendarbean.setMonth(inputMonth); cells = calendarbean.getCalendar(); tfyear.setText(inputYear + ""); tfmonth.setText(inputMonth + ""); tbtime = new JTable(cells, cocumnNames); } //如果信号源在退出登录上 } public static void main(String [] args) { JFrame f1 = null; SelectetimeTest selectetime = new SelectetimeTest(f1); selectetime.setVisible(true); } }上面是我的代码,麻烦各位给看下老师要让交作业了 同一个类中A方法怎么共享B方法的变量 一个我没见过的接口定义 关于look&feel的问题! 一个JTree问题 JBuilder下关于关于窗体调用,出学,望指教! Applet初始化失败,控制台显示异常...... JCreator 有汉化版本吗? 关于文件的问题 高程都不过了,下一步怎么办?学java吧。 我的IE运行不了applet,怎么回事啊?(W2K,IE 6.0) 学安卓要学JAVA SE的SWING和AWT么? java 判断网络
int year ,month , nextDay;
Calendar calendar = Calendar.getInstance();
public void setYear(int year){
this.year = year;
}
public void setMonth(int month){
this.month = month;
}
// 根据年月,在二维表格中按真实顺序排位
public String[][] getCalendar(){
String a[][] = new String[6][7];
Calendar 日历 = Calendar.getInstance();
日历.set(year,month-1,1);
int 星期几 = 日历.get(Calendar.DAY_OF_WEEK)-1;
int day = 0;
// 判断一个月有多少天
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
day = 31;
}
if(month==4 || month==6 || month==9 || month==11){
day = 30;
}
if(month == 2){
if(((year%4==0)&&(year%100!=0))||(year%400==0)){
day = 29;
}else{
day = 28;
}
}
// 二维数组依次排序
nextDay = 1;
for(int k=0; k<6; k++){
if(k == 0){
for(int j=星期几; j<7; j++){
a[k][j] = "" + nextDay;
nextDay++;
}
}else{
for(int j=0; j<7 && nextDay<=day; j++){
a[k][j] = "" + nextDay;
nextDay++;
}
}
}
return a; // 返回二维当前年月数组
}
}
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.plaf.basic.BasicButtonListener;public class SelectetimeTest extends JDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel p;
private JScrollPane sp;
private JTextField tfyear, tfmonth;
private JLabel lbyear, lbmonth;
private JTable tbtime;
private JButton button1, button2, button3;
private Object cells[][];
private String[] cocumnNames = {"日", "一", "二", "三", "四", "五", "六"};
private JRadioButton timequery, linequery;
private JTextField from, arrivel, leavetime;
private int inputMonth = 0, inputYear = 0;
private String strmonth;
private Calendar calendar;
private ListSelectionModel selectionMode;
private int counter = 0;
public SelectetimeTest(JFrame f) {
//初始化信息
super( f, "选择日期", true);
p = new JPanel();
CalendarBean calendarbean = new CalendarBean();
calendar = Calendar.getInstance();
inputYear = calendar.get(Calendar.YEAR);
inputMonth = calendar.get(Calendar.MONTH) + 1;
calendarbean.setYear(inputYear);
calendarbean.setMonth(inputMonth);
cells = calendarbean.getCalendar();
button1 = new JButton("<<");
button2 = new JButton("今天");
button3 = new JButton(">>");
tfyear = new JTextField(4);
tfyear.setText(inputYear + "");
tfmonth = new JTextField(2);
tfmonth.setText(inputMonth + "");
lbyear = new JLabel("年");
lbmonth = new JLabel("月");
tbtime = new JTable(cells, cocumnNames);
sp = new JScrollPane(tbtime);
tbtime.setCellSelectionEnabled(true);
tbtime.isCellEditable(7, 5);
//设置组件坐标及大小
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
//添加信息到面板
p.add(button1);
p.add(button2);
p.add(button3);
p.add(tfyear);
p.add(lbyear);
p.add(tfmonth);
p.add(lbmonth);
//设置窗体
this.add(p, BorderLayout.NORTH);
this.add(sp);
this.setSize(300, 200);
this.setLocation(800, 350);
this.setResizable(false);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
//如果信号源在第一个选择键上
if (source == button3) {
counter++;
inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter;
if (inputMonth > 12) {
if (inputMonth % 12 == 0) {
inputYear = calendar.get(Calendar.YEAR) + ((inputMonth / 12) - 1);
inputMonth = 12;
} else {
inputYear = calendar.get(Calendar.YEAR) + (inputMonth / 12);
inputMonth = inputMonth % 12;
}
}
CalendarBean calendarbean = new CalendarBean();
calendarbean.setYear(inputYear);
calendarbean.setMonth(inputMonth);
cells = calendarbean.getCalendar();
tfyear.setText(inputYear + "");
tfmonth.setText(inputMonth + "");
tbtime.revalidate();
}
//如果信号源在第二个选择键上
/*if (source == selecte2) {
AddLine add = new AddLine();
add.setVisible(true);
this.setVisible(false);
}*/
//如果信号源在第三个选择键上
if (source == button2) {
inputYear = calendar.get(Calendar.YEAR);
inputMonth = calendar.get(Calendar.MONTH) + 1;
CalendarBean calendarbean = new CalendarBean();
calendarbean.setYear(inputYear);
calendarbean.setMonth(inputMonth);
cells = calendarbean.getCalendar();
tfyear.setText(inputYear + "");
tfmonth.setText(inputMonth + "");
tbtime = new JTable(cells, cocumnNames);
}
//如果信号源在更改信息上
if (source == button1) {
counter--;
inputMonth = (calendar.get(Calendar.MONTH) + 1) + counter;
if (0 < inputMonth && inputMonth < 12) {
inputYear = calendar.get(Calendar.YEAR);
inputMonth = inputMonth % 12;
} else if (inputMonth == 0){
inputYear = calendar.get(Calendar.YEAR) - 1;
inputMonth = 12;
} else {
if (inputMonth % 12 == 0) {
inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1);
inputMonth = 12;
} else {
inputYear = calendar.get(Calendar.YEAR) - (-(inputMonth / 12) + 1);
inputMonth =12 - (-(inputMonth % 12));
}
}
CalendarBean calendarbean = new CalendarBean();
calendarbean.setYear(inputYear);
calendarbean.setMonth(inputMonth);
cells = calendarbean.getCalendar();
tfyear.setText(inputYear + "");
tfmonth.setText(inputMonth + "");
tbtime = new JTable(cells, cocumnNames);
}
//如果信号源在退出登录上
}
public static void main(String [] args) {
JFrame f1 = null;
SelectetimeTest selectetime = new SelectetimeTest(f1);
selectetime.setVisible(true);
}
}上面是我的代码,麻烦各位给看下老师要让交作业了