自动填充系列组合框 - Java
Posted
技术标签:
【中文标题】自动填充系列组合框 - Java【英文标题】:AutoFill series of ComboBoxes - Java 【发布时间】:2013-03-28 19:08:22 【问题描述】:我正在编写一个简单的程序;这个程序的一部分是一系列组合框,我在其中输入了月份(alpha)、天(数字)和年(数字)的字符串。我想以某种方式让 Java 以月、日和年的形式提取日期,然后根据系统时钟用正确的日期自动填充这些组合框。
这是我的一些代码:
public static final String[] MONTHS = "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November",
"December";
public static final String[] DAYS = "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
"12", "13", "14", "15", "16", "17", "18", "19", "20",
"21", "22", "23", "24", "25", "26", "27", "28", "29",
"30", "31";
public static final String[] YEARS = "2015", "2014", "2013", "2012", "2011", "2010";
Note to FORUMS: THIS ISN'T ALL THE CODE. I'VE JUST PROVIDED INFORMATION NECESSARY FOR THE QUESTION.
JLabel start = new JLabel("Start Date:");
if (shouldWeightX)
c.weightx = .5;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 1;
pane.add(start, c);
JComboBox MonthLong = new JComboBox();
if (shouldWeightX)
c.weightx = 0;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<MONTHS.length;i++)
MonthLong.addItem(MONTHS[i]);
pane.add(MonthLong, c);
JComboBox DayLong = new JComboBox();
if (shouldWeightX)
c.weightx = 1.0;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 2;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<DAYS.length;i++)
DayLong.addItem(DAYS[i]);
pane.add(DayLong, c);
JComboBox YearLong = new JComboBox();
if (shouldWeightX)
c.weightx = 1.0;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 3;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<YEARS.length;i++)
YearLong.addItem(YEARS[i]);
YearLong.setSelectedItem("2013");
pane.add(YearLong, c);
提前致谢。
【问题讨论】:
【参考方案1】:您应该使用 java.util.Calendar 类获取当前时间部分。
Calendar now = Calendar.getInstance();
// months start with 0
System.out.println("Year is: " + now.get(Calendar.YEAR));
System.out.println("Month is: " + (now.get(Calendar.MONTH) + 1));
System.out.println("Date is: " + now.get(Calendar.DATE));
然后您可以在初始化步骤中在您的组合框上设置SelectedIndex。
还请记住,您不必使用 for 循环将这些字符串添加到组合框。试试看吧。
JComboBox<String> MonthLong = new JComboBox<String>(MONTHS);
【讨论】:
【参考方案2】:我没有测试这段代码。
Calendar now = Calendar.getInstance();
int month = now.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH);
int year = now.get(Calendar.YEAR);
MonthLong.setSelectedIndex(month);
DayLong.setSelectedItem(Integer.toString(day));
YearLong.setSelectedItem(Integer.toString(year));
在 Java 中,变量通常以小写字母开头。
【讨论】:
这成功了!非常感谢你。另外,我知道变量的小写字母,我正在为其他人编辑一些代码,但在这个问题中我说它是“我的”。哎呀!再次感谢。以上是关于自动填充系列组合框 - Java的主要内容,如果未能解决你的问题,请参考以下文章