You have it correct. Your router will have a configuration page for port forwarding where you enter these values. You need the following information:
- Original port (as set by source): The port that will be used externally, from the internet to your router, in your example 10000.
- Destination Port: The port to use on the LAN on which to forward the traffic. It can vary from the original port request by the source - this would be 7777 in your example.
- Destination IP Address: The IP address of the server on your LAN that is receiving the traffic. This either needs to be a fixed (non-dhcp) address or you must configure a reserved dhcp address for the PC acting as a server.
- Traffic Type: UDP, TCP or Both
It is trivial for a router to forward traffic on a different port than it receives it on. The port is a software construct and can be arbitrarily assigned (that isn't to say that it doesn't have an impact - it certainly can - but not in a physical sense). Both UDP (a connection less, datagram communication method) and TCP (a connection oriented protocol) embed the source and destination port numbers in the segment header of each packet. In effect, the router will replace the destination port address to the requested port.
Port forwarding is closely related to Network Address Translation (NAT), which is the process by which local private IP addresses are translated to the single public IP address that the router maintains. Because of how NAT works, in a normal NAT configuration it isn't possible for the router to know that unsolicited traffic from the internet is intended for a particular IP address on the LAN, instead the router tracks outgoing traffic for a given client / IP address, and (for most home routers) uses Port Address Translation (PAT) to keep track of what traffic belongs to which host on the LAN.
It does this by replacing the source address in the outgoing traffic with one designated for that local host. The external (internet) server being communicated with will embed that port as the destination port in the response, and so the router will be able to 'translate' that traffic to the correct local machine.
Port forwarding circumvents that to a degree - removing the requested port (the source port coming from the internet) from the pool of ports that can be used for PAT, and simply directs all traffic received on that port to the configured local IP address.
Just to be clear - this is an over broad generalization of fairly complicated stuff - this is by no means a comprehensive overview.