无法获取新推杆的 HashMap 元素?
Cant get Element of an HashMap that are new puttet?
大家好我不知道发生了什么事?我添加了生日,但是如果使用 getHashMap 调用它们,例如我无法获取 class swingmenu 中的元素。 我只是对问题有想法。我认为这是因为我在 class 中调用了新事件,而在不同的 class 中输出散列图的地方我也调用了新事件。但是不知道我说的对不对?
也许任何解决方案都会对我有所帮助。如果您有问题,请问我。对我来说,学习新东西很重要。显示了一些短代码,因为它不相关。我调试 class swingFormatFunction 并发现实例事件为空。
这部分没有添加到我的 HashMap 中。
public class swingFormatFunction{
private Event event = new Event();
public void geburtstageFormatieren(String content) {
String formatContent = content.replace(';', ' ');
for (String s : formatContent.split("\n")) {
event.addBirthday(s.substring(0, 5).toString(), new Event(s.substring(12).toString()));
}
}
}
这是我的菜单,我在其中调用 Menuitem 并单击 "ok"。这个函数工作正常我得到了输出的元素。
public class swingMenu{
okBTN.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okBTN) {
dialog.dispose();
JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setTitle("Calendar Special Events");
int yearNumber = Integer.parseInt((String) yearCombobox.getSelectedItem());
JTextArea textArea = new JTextArea();
Event event = new Event(yearNumber);
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry entry : event.getEventMap().entrySet()) {
stringBuilder.append(entry.getKey() + " : " + entry.getValue() + "\n");
}
textArea.setText(stringBuilder.toString());
dialog.setContentPane(textArea);
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setResizable(true);
textArea.setEditable(false);
dialog.setVisible(true);
}
}
});
那是我的活动 class。这个 class 包含我使用它的 HashMap。
public class Event{
private HashMap<String, Event> eventMap = new HashMap<>();
public Event(String name) {
this.name = name;
}
public Event(int year) {
addStrongMoveableHolidayInMap(year);
}
public Event() {
}
private void addMoveableHoliday(int year) {
/* Bewegliche Feiertage */
/*Rose monday (-48)*/
int daynumberOfEasterSunday = calenderFunction.easterSunday(year) - 48;
String gregorDate = calenderFunction.kalenderDatumFuerJD(daynumberOfEasterSunday);
String day = gregorDate.substring(0, 2);
String month = gregorDate.substring(3, 5);
String date = day + "." + month;
this.eventMap.put(date, new Event("Rosenmontag"));
}
private void addStrongHoliday(int year) {
/* Feste Feiertage */
this.eventMap.put("24.12", new Event("1. Weihnachtstag"));
}
void addStrongMoveableHolidayInMap(int year) {
addStrongHoliday(year);
addMoveableHoliday(year);
}
public void addBirthday(String year, Event event) {
this.eventMap.put(year, event);
}
public HashMap<String, Event> getEventMap() {
return eventMap;
}
}
希望大家帮帮我
最好的问候
曼纽尔森
两个事件对象是完全独立的。
swingFormatFunction
中的第一个是实例属性,ActionListener
中的第二个是局部变量。
Event 的 eventMap
属性也是实例属性,因此每个 Event
对象都有自己的映射。也许您想在所有活动中分享一个 eventMap
。
大家好我不知道发生了什么事?我添加了生日,但是如果使用 getHashMap 调用它们,例如我无法获取 class swingmenu 中的元素。 我只是对问题有想法。我认为这是因为我在 class 中调用了新事件,而在不同的 class 中输出散列图的地方我也调用了新事件。但是不知道我说的对不对?
也许任何解决方案都会对我有所帮助。如果您有问题,请问我。对我来说,学习新东西很重要。显示了一些短代码,因为它不相关。我调试 class swingFormatFunction 并发现实例事件为空。
这部分没有添加到我的 HashMap 中。
public class swingFormatFunction{
private Event event = new Event();
public void geburtstageFormatieren(String content) {
String formatContent = content.replace(';', ' ');
for (String s : formatContent.split("\n")) {
event.addBirthday(s.substring(0, 5).toString(), new Event(s.substring(12).toString()));
}
}
}
这是我的菜单,我在其中调用 Menuitem 并单击 "ok"。这个函数工作正常我得到了输出的元素。
public class swingMenu{
okBTN.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okBTN) {
dialog.dispose();
JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setTitle("Calendar Special Events");
int yearNumber = Integer.parseInt((String) yearCombobox.getSelectedItem());
JTextArea textArea = new JTextArea();
Event event = new Event(yearNumber);
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry entry : event.getEventMap().entrySet()) {
stringBuilder.append(entry.getKey() + " : " + entry.getValue() + "\n");
}
textArea.setText(stringBuilder.toString());
dialog.setContentPane(textArea);
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setResizable(true);
textArea.setEditable(false);
dialog.setVisible(true);
}
}
});
那是我的活动 class。这个 class 包含我使用它的 HashMap。
public class Event{
private HashMap<String, Event> eventMap = new HashMap<>();
public Event(String name) {
this.name = name;
}
public Event(int year) {
addStrongMoveableHolidayInMap(year);
}
public Event() {
}
private void addMoveableHoliday(int year) {
/* Bewegliche Feiertage */
/*Rose monday (-48)*/
int daynumberOfEasterSunday = calenderFunction.easterSunday(year) - 48;
String gregorDate = calenderFunction.kalenderDatumFuerJD(daynumberOfEasterSunday);
String day = gregorDate.substring(0, 2);
String month = gregorDate.substring(3, 5);
String date = day + "." + month;
this.eventMap.put(date, new Event("Rosenmontag"));
}
private void addStrongHoliday(int year) {
/* Feste Feiertage */
this.eventMap.put("24.12", new Event("1. Weihnachtstag"));
}
void addStrongMoveableHolidayInMap(int year) {
addStrongHoliday(year);
addMoveableHoliday(year);
}
public void addBirthday(String year, Event event) {
this.eventMap.put(year, event);
}
public HashMap<String, Event> getEventMap() {
return eventMap;
}
}
希望大家帮帮我
最好的问候 曼纽尔森
两个事件对象是完全独立的。
swingFormatFunction
中的第一个是实例属性,ActionListener
中的第二个是局部变量。
Event 的 eventMap
属性也是实例属性,因此每个 Event
对象都有自己的映射。也许您想在所有活动中分享一个 eventMap
。