0
这是我的课程的一个小程序。 为什么我最后的g.drawString打印0的所有变量都有它?Applet不会携带变量从init方法到paint方法
import javax.swing.*;
import java.awt.*;
public class Days extends JApplet
{
private int month;
private int day;
private int year_string,
private int total_days;
private int month_days;
public final int minMonth = 1;
public final int maxMonth = 12;
public final int minDay = 1;
public final int maxDay = 31;
public final int minYear = 1000;
public final int maxYear = 2999;
public void init()
{
String month_string,
day_string,
year_string;
month_string = JOptionPane.showInputDialog("Enter the month (" + minMonth +
"-" + maxMonth + ")");
day_string = JOptionPane.showInputDialog("Enter the day (" + minDay +
"-" + maxDay + ")");
year_string = JOptionPane.showInputDialog("Enter the year (" + minYear +
"-" + maxYear + ")");
int month = Integer.parseInt(month_string);
int day = Integer.parseInt(day_string);
int year = Integer.parseInt(year_string);
switch (month){
case 1:
month_days = 0;
break;
case 2:
month_days = 31;
break;
case 3:
month_days = 59;
break;
case 4: ;
month_days = 90;
break;
case 5:
month_days = 120;
break;
case 6:
month_days = 151;
break;
case 7:
month_days = 181;
break;
case 8:
month_days = 212;
break;
case 9:
month_days = 243;
break;
case 10:
month_days = 273;
break;
case 11:
month_days = 304;
break;
case 12:
month_days = 334;
break;
}
int total_days = month_days + day;
}
public void paint(Graphics g)
{
g.drawString("The number of days from the beginning of " + year_string + " to " + month + "/" + day + "/" + year_string +
"= " + total_days, 40, 30);
showStatus("Alex Collins");
}
}
我该如何解决这个问题我有请帮忙 – user2297094
你需要通过一个基本的Java教程,谷歌一个。请参阅我们的FAQ。这在init方法和类中都有相同的变量。因此,mehtod中的var隐藏了类,所以除非使用“this”,否则它不会改变它。在你的情况下,只需删除init中的var变量。 – tgkprog