On Thu, 28 Sep 2023 16:05:41 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> test/jdk/javax/swing/ToolTipManager/bug5078214.java line 147:
>> 
>>> 145:         });
>>> 146: 
>>> 147:     }
>> 
>> As I said, there's absolutely no reason to call `GraphicsEnvironment` 
>> methods on EDT — these are not Swing components.
>> 
>> There's no reason to store any of these as static fields, they are local 
>> variables.
>> 
>> Suggestion:
>> 
>>     private static GraphicsConfiguration getGraphicsConfig() {
>>         GraphicsDevice[] devices = 
>> GraphicsEnvironment.getLocalGraphicsEnvironment()
>>                                                       .getScreenDevices();
>>         for (GraphicsDevice device : devices) {
>>             GraphicsConfiguration[] gc = device.getConfigurations();
>>             for (int i = 0; i < gc.length; i++) {
>>                 insets = Toolkit.getDefaultToolkit().getScreenInsets(gc[i]);
>>                 if (insets.bottom != 0) {
>>                     return gc[i];
>>                 }
>>             }
>>         }
>>         return null;
>>     }
>> 
>> 
>> You call this function from the `main` method.
>
> The nested loop could also be enhanced for:
> 
>             for (GraphicsConfiguration config : device.getConfigurations()) {
>                 insets = Toolkit.getDefaultToolkit().getScreenInsets(config);
>                 if (insets.bottom != 0) {
>                     return config;
>                 }
>             }

And [I still have the 
concern](https://github.com/openjdk/jdk/pull/15875#discussion_r1335795417) 
about iterating over all the configurations. It hasn't been addressed.

Since the configuration is not set, I think the inner loop is not needed at 
all, it should be replaced with
```java             
GraphicsConfiguration config = device.getDefaultConfiguration();

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15875#discussion_r1340386748

Reply via email to