2525import java .net .URL ;
2626import java .util .ArrayList ;
2727import java .util .List ;
28+ import java .util .concurrent .atomic .AtomicReference ;
2829
2930import static org .mcphackers .mcp .tools .Util .enqueueRunnable ;
3031
@@ -135,6 +136,7 @@ public void reloadVersionList() {
135136 topRightContainer .removeAll ();
136137 topRightContainer .add (this .verLabel );
137138 topRightContainer .add (this .verList );
139+ AtomicReference <JButton > reloadVersionListButton = new AtomicReference <>();
138140 enqueueRunnable (() -> {
139141 loadingVersions = true ;
140142 VersionParser versionParser = VersionParser .getInstance ();
@@ -144,6 +146,9 @@ public void reloadVersionList() {
144146 verLabel .setBorder (new EmptyBorder (4 , 0 , 0 , 2 ));
145147 verLabel .setForeground (Color .RED );
146148 verList = null ;
149+ JButton reloadButton = new JButton (MCP .TRANSLATOR .translateKey ("mcp.versionList.reload" ));
150+ reloadButton .addActionListener (e -> this .reloadVersionList ());
151+ reloadVersionListButton .set (reloadButton );
147152 } else {
148153 verList = new JComboBox <>(versionParser .getVersions ().toArray ());
149154 verList .addPopupMenuListener (new PopupMenuListener () {
@@ -170,6 +175,9 @@ public void popupMenuCanceled(PopupMenuEvent e) {
170175 topRightContainer .add (this .verLabel );
171176 if (verList != null ) {
172177 topRightContainer .add (this .verList );
178+ } else if (reloadVersionListButton .get () != null ) {
179+ JButton reloadButton = reloadVersionListButton .get ();
180+ topRightContainer .add (reloadButton );
173181 }
174182 loadingVersions = false ;
175183 synchronized (mcp ) {
0 commit comments