当用户点击按钮1/2时JVM没有响应,它就会卡住

时间:2014-03-28 19:50:37

标签: java arrays swing user-interface actionevent

enter image description here

我正在尝试创建一个程序,用户可以输入如下日期:28 -03 - 2014

这个和程序读取它,给出明天的日期,如:29 - march - 2014。 该计划必须检查:

  • String max 10。
  • 日期(2位数):1 - 31
  • 字符串:-
  • 月(两位数):1 - 12
  • 字符串:-
  • 年:四位数

这是我的代码!

    public String month()
    {
            int month = 0;
            switch(month){
            case 1 :monthString = " Janauri";
                    break;
             case 2: monthString = "February"
    .......
    ublic String dateOfTomorrow(int day, int month, int year)

    {
    String Date =  day+ "-" + month+ "- " + year;
    day++;
    if(day > totalDaysInMonth(month));
    {// new  month
    day = 1;
    month++;
    if(month > 12)
    {//new year
    month= 1;
    year ++;
    }
  }
    return Date;

    }
        private boolean  totalDaysInMonth(int day)
        {
            if( day >= 1 && day < 31)
            {
                return true;
            }
            else {
                return false;
                }
        }


        public void actionPerformed(ActionEvent e)
            {
            for ( int i = 1; i<31;);
                String s = tf.getText();
                if ( e.getSource() == b1)
                {

                    l2.setText(s);

                }
                else if (e.getSource ()== b2)
                {
                    l2.setText(monthString);
                }

            }

2 个答案:

答案 0 :(得分:1)

我认为你的问题出现在这个循环中:

for ( int i = 1; i<31;);

永远不会结束。 删除该空循环或将其更改为:

for ( int i = 1; i<31;i++);

答案 1 :(得分:0)

我真的不明白你的意思是1/2堆栈。但是如果你创建一些变量字符串

String Date =  day + "-" + month + "-" + year;

然后更改它对字符串没有任何影响的变量。 所以你仍然会得到相同的约会对象。

提高可读性的提示使您的变量变得更加容易。因此,而不是日期称之为日期。