fixed AWT components on macOS (issue #583)

- fixed missing focus indicator
- fixed round corners
- fixed java.awt.Button background
- fixed java.awt.Choice background
- fixed java.awt.Checkbox hover
This commit is contained in:
Karl Tauber
2022-09-05 14:47:17 +02:00
parent 30132aa6b0
commit 7858e42e37
6 changed files with 160 additions and 8 deletions

View File

@@ -17,8 +17,11 @@
package com.formdev.flatlaf.testing;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.SwingUtilities;
import com.formdev.flatlaf.FlatLightLaf;
/**
@@ -69,6 +72,52 @@ public class FlatAWTTest
frame.add( new Panel() );
frame.add( new Canvas() );
Panel controlPanel = new Panel();
frame.add( controlPanel );
Checkbox enabledCheckBox = new Checkbox( "enabled", true );
enabledCheckBox.addItemListener( e -> {
boolean enabled = enabledCheckBox.getState();
for( Component c : frame.getComponents() ) {
if( c != controlPanel )
c.setEnabled( enabled );
}
} );
controlPanel.add( enabledCheckBox );
Checkbox explicitColorsCheckBox = new Checkbox( "explicit colors" );
explicitColorsCheckBox.addItemListener( e -> {
boolean explicit = explicitColorsCheckBox.getState();
for( Component c : frame.getComponents() ) {
if( c != controlPanel )
c.setBackground( explicit ? Color.green : null );
}
} );
controlPanel.add( explicitColorsCheckBox );
Menu menu = new Menu( "File" );
menu.add( new MenuItem( "New" ) );
menu.add( new MenuItem( "Open" ) );
menu.add( new MenuItem( "Save" ) );
MenuBar menuBar = new MenuBar();
menuBar.add( menu );
frame.setMenuBar( menuBar );
PopupMenu popupMenu = new PopupMenu();
popupMenu.add( new MenuItem( "item 1" ) );
popupMenu.add( new MenuItem( "item 2" ) );
popupMenu.add( new MenuItem( "item 3" ) );
list.add( popupMenu );
list.addMouseListener( new MouseAdapter() {
@Override
public
void mousePressed( MouseEvent e ) {
if( SwingUtilities.isRightMouseButton( e ) )
popupMenu.show( list, 0, 0 );
}
} );
frame.setSize( 800, 600 );
frame.setVisible( true );
});