No, it isn't obvious.
You should be using nextInt rather than String#split and Integer#parseInt.
It is also not obvious from the code that a Member is a Speaker. Presumably they are subclasses of each other. In which case the return type is incorrect;
a List<Member> IS‑NOT‑A List<Speaker>, so that code will probably fail to compile.
If that method is not in the Member class, it violates the single responsibility principle. A class should take care of itself, and this appears to be getting another class to do the work. There ought to be a method in the Member class like valueOf(String). Then you can call it like this:-
All the bits about nextInt belong in the valueOf method. That is a factory method, and you usually make
factory methods static.
Line 6: Note lots of documentation comments. You should use them to work out what that factory method does. If you suffer an Exception it will probably be an
InputMismatchException, in which case you may have to check whether your file is corrupted.
Line 12: You can create a
Scanner with a String. It can take the String above and take is apart into tokens. Try the block of code in the following post. Then you can see how it works, and also how you can use those tokens in the Member constructor/setDate method. \u201c and \u201d are posh quote marks.
Line 13: A Scanner Line uses whitespace as a default to separate tokens. That String represents any amount of whitespace followed by a single comma followed by any amount of whitespace. \s means whitespace and * means any amount, permitting 0 instances. That is a regular expression which you can read about
here if you have the time.
I pushed the wrong button and posted this post before it was complete. So I deleted it, edited it, and shall restore it from what I deleted.
The code above has nothing to do with GUIs, so you should make sure your entire application works at the command line before you even think about GUIs.
And welcome again