RFR: 8286620: Create regression test for verifying setMargin() of JRadioButton [v4]

Alexey Ivanov aivanov at openjdk.java.net
Wed Jun 1 16:34:44 UTC 2022


On Wed, 1 Jun 2022 06:00:34 GMT, Tejesh R <tr at openjdk.org> wrote:

>> Added test for checking setMargin() of JRadioButton.
>
> Tejesh R has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Updated based on review comments

Changes requested by aivanov (Reviewer).

Shall the test be located in  
`test/jdk/javax/swing/JRadioButton/4380543/bug4380543.java`  
instead of  
`test/jdk/javax/swing/JRadioButton/bug4380543.java` ?

Usually, there's been a folder with bugid (`/4380543/`) for each test. Do we use the flat layout now?

test/jdk/javax/swing/JRadioButton/bug4380543.java line 62:

> 60:             "(insets set to 20 on all 4 sides)." +
> 61:             "\n 3. If Left insets(margins) appear Empty, press Fail, " +
> 62:             "else press Pass.";

You should add an explicit step to verify rendering in different Look-and-Feels by clicking the buttons.

test/jdk/javax/swing/JRadioButton/bug4380543.java line 102:

> 100:             sLnFName = sLnFName.trim();
> 101: 
> 102:             lookAndFeelMap.put(sLnFName, sLnFClassName);

Why don't you want to use `look.getName()` instead of doing the magic to extract what resembles the name from the class?

test/jdk/javax/swing/JRadioButton/bug4380543.java line 126:

> 124: 
> 125:         for (Map.Entry<String, String> mapElement : lookAndFeelMap.entrySet()) {
> 126:             String btnName = mapElement.getKey();

This can be further simplified: you don't use the value, you use only the key, so the for-loop could iterate over `lookAndFeelMap.keySet()`.

In fact, you can avoid the map altogether if you use the class name as the action name:


UIManager.LookAndFeelInfo[] lookAndFeel = UIManager.getInstalledLookAndFeels();
for (UIManager.LookAndFeelInfo look : lookAndFeel) {
    JButton btn = new JButton(look.getName());
    btn.setActionCommand(look.getClassName());
    btn.addActionListener(this);
    p.add(btn);
}


In this case, `initMap` and `lookAndFeelMap` should be removed.

The listener should be updated:


public void actionPerformed(ActionEvent e) {
    setLookAndFeel(e.getActionCommand());
    SwingUtilities.updateComponentTreeUI(this);
}

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

PR: https://git.openjdk.java.net/jdk/pull/8721



More information about the client-libs-dev mailing list