Java - 显示摆动 GUI
Java - Display swing GUI
我的 appointmentViewWeeks
构造函数从其他 类 接收参数并创建一个 GUI。我如何在不知道 year
和 month
的值的情况下从我的 main
方法调用它?
public class appointmentViewWeeks extends Frame{
public appointmentViewWeeks(String year,String month){
List<LocalDate> mondays = new ArrayList<LocalDate>();
Month m = Month.valueOf(monthIntToString(month).toUpperCase());
LocalDate date = Year.of(Integer.valueOf(year)).atMonth(m).atDay(1).
with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
Month mi = date.getMonth();
while (mi == m) {
mondays.add(date);
date = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
mi = date.getMonth();
}
String[] mondaysList = mondays.toArray(new String[0]);
JComboBox mondayList = new JComboBox(mondaysList);
JLabel welcome = new JLabel("Please choose a monday in "+month+"/"+year);
Container contentPane = getContentPane();
contentPane.add(mondayList);
contentPane.add(welcome);
}
public String monthIntToString(String month) {
return new DateFormatSymbols().getMonths()[Integer.valueOf(month)-1];
}
public static void main(String[] args) {
//windows feel and look
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException |
InstantiationException |
IllegalAccessException |
UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
appointmentViewWeeks view = new appointmentViewWeeks();
view.setVisible(true);
}
}
您必须传入年份和月份来创建它(或仅传入两个 Strings
),除非您添加第二个不带 String
参数的构造函数:
public appointmentViewWeeks() {
//Code to create the object without using the String parameters...
//Maybe just call your original constructor with some default values?
}
您还可以获取当前的年份和月份,并使用您当前的构造函数创建它:
LocalDateTime date = LocalDateTime.now();
appointmentViewWeeks view = new appointmentViewWeeks(String.valueOf(date.getYear()),
String.valueOf(date.getMonth()));
我的 appointmentViewWeeks
构造函数从其他 类 接收参数并创建一个 GUI。我如何在不知道 year
和 month
的值的情况下从我的 main
方法调用它?
public class appointmentViewWeeks extends Frame{
public appointmentViewWeeks(String year,String month){
List<LocalDate> mondays = new ArrayList<LocalDate>();
Month m = Month.valueOf(monthIntToString(month).toUpperCase());
LocalDate date = Year.of(Integer.valueOf(year)).atMonth(m).atDay(1).
with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
Month mi = date.getMonth();
while (mi == m) {
mondays.add(date);
date = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
mi = date.getMonth();
}
String[] mondaysList = mondays.toArray(new String[0]);
JComboBox mondayList = new JComboBox(mondaysList);
JLabel welcome = new JLabel("Please choose a monday in "+month+"/"+year);
Container contentPane = getContentPane();
contentPane.add(mondayList);
contentPane.add(welcome);
}
public String monthIntToString(String month) {
return new DateFormatSymbols().getMonths()[Integer.valueOf(month)-1];
}
public static void main(String[] args) {
//windows feel and look
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException |
InstantiationException |
IllegalAccessException |
UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
appointmentViewWeeks view = new appointmentViewWeeks();
view.setVisible(true);
}
}
您必须传入年份和月份来创建它(或仅传入两个 Strings
),除非您添加第二个不带 String
参数的构造函数:
public appointmentViewWeeks() {
//Code to create the object without using the String parameters...
//Maybe just call your original constructor with some default values?
}
您还可以获取当前的年份和月份,并使用您当前的构造函数创建它:
LocalDateTime date = LocalDateTime.now();
appointmentViewWeeks view = new appointmentViewWeeks(String.valueOf(date.getYear()),
String.valueOf(date.getMonth()));