首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个日历小程序空值输出有关问题

2013-09-06 
一个日历小程序空值输出问题import java.awt.BorderLayoutimport java.awt.Colorimport java.awt.GridLa

一个日历小程序空值输出问题

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Scanner;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;

public class TestRiLi extends JFrame{
boolean flag =false;
JPanel j1 = new JPanel();
JPanel j2 = new JPanel();
JTextArea j11 =new JTextArea();

JLabel j21 =new JLabel("选择年份");
JComboBox jbb1;
JLabel j22 =new JLabel("选择月份");
JComboBox jbb2;
String[] years;
String[] months;
String value1;
String value2;
 int year =2000;
 int month=1;
String a ="日\t一\t二\t三\t四\t五\t六";
Border border = new EtchedBorder(//浮雕化边框
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));
public TestRiLi(){
years =new String[20];
months =new String[12];
for(int i=0;i<years.length;i++){
years[i]=String.valueOf(2000+i);
}
for(int i=0;i<months.length;i++){
months[i]=String.valueOf(i+1);
}

jbb1 =new JComboBox(years);
jbb2 =new JComboBox(months);
jbb1.setEditable(false);
jbb2.setEditable(false);
}

public void luanchFrame(){

this.setSize(700, 300);
this.setLocation(100, 100);
this.setResizable(false);

add(j1,new BorderLayout().CENTER);
add(j2,new BorderLayout().EAST);
j1.add(j11);
j1.setBorder(border);
//j1.setBackground(Color.CYAN);
j2.setLayout(new GridLayout(4,1));
j2.add(j21);
j2.setBorder(border);
j2.add(jbb1);
j2.setBorder(border);
j2.add(j22);
j2.setBorder(border);
j2.add(jbb2);
j2.setBorder(border);


this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}

});

this.setVisible(true);
ss();


}

public static void main(String[] args){
new TestRiLi().luanchFrame();
}
public void ss(){


jbb1.addItemListener(new ItemListener(){


public void itemStateChanged(ItemEvent e) {
value1=(String)(e.getItem());
year =Integer.parseInt(value1);
}

});
jbb2.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
value2=(String)(e.getItem());
month =Integer.parseInt(value2);
}

});

if(value1!=null&&value2!=null){

ym();
}
}
public void  ym(){
j11.setText(j11.getText()+a+"\n");
Scanner in=new Scanner(System.in);
while(true){
int sum=0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;
int wekday=sum%7;
for(int i=1;i<=wekday;i++){
j11.setText(j11.getText()+"\t");
}
int day=0;
if(year%4==0&&year%100!=0||year%400==0){
day=29;
}else{
day=28;
}if(month!=2){
if(month==4||month==6||month==9||month==11){
day=30;
}else{
day=31;
}
}
for(int i=1;i<=day;i++){
if(sum%7==6){
j11.setText(j11.getText()+i+"\t"+"\n");
}else{
j11.setText(j11.getText()+i+"\t");
}
sum++;
}

}

}
}
程序如上述,自己编的!现在能运行,但只有图形界面,无法在组件内显示数据!
有个地方没整通,现在此程序运行时,无法运行到ym()方法,因为value1&&value2均为null,
无法赋值给后面的year和month.
问题点:
如何让点击JComboBox内的组件后,先将值传递给value1&&value2然后传递给year和month.
求解 日历 图形 String
[解决办法]
http://download.csdn.net/detail/a470577391/5447587  这有一个 楼主可以下下来看下不要分的,你这程序太长了 看着眼花

热点排行
Bad Request.