mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 07:17:13 -06:00
Compare commits
86 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57655d8859 | ||
|
|
62ffd57108 | ||
|
|
8db05f47b5 | ||
|
|
c684761eef | ||
|
|
0a8ece8c9c | ||
|
|
01058bde1b | ||
|
|
9c2c03cddb | ||
|
|
f0778a83a0 | ||
|
|
b86ae1f122 | ||
|
|
dfd6831b02 | ||
|
|
a4ddc13c1a | ||
|
|
fd63a1b7c2 | ||
|
|
d83c3689d0 | ||
|
|
d52bf9d318 | ||
|
|
80f56dec15 | ||
|
|
358c226b96 | ||
|
|
9de9983416 | ||
|
|
c9da4fcaf1 | ||
|
|
932ca6f9d4 | ||
|
|
4487c9985c | ||
|
|
a53ce99977 | ||
|
|
5444719895 | ||
|
|
b66139281d | ||
|
|
8925c27eb9 | ||
|
|
99be346387 | ||
|
|
81d46ba8ee | ||
|
|
ef4c467b20 | ||
|
|
44d196fb8c | ||
|
|
867c4fff58 | ||
|
|
5643546117 | ||
|
|
549832ba96 | ||
|
|
a8744b2bb4 | ||
|
|
e292d3444c | ||
|
|
ee6a1da709 | ||
|
|
8c15bc746b | ||
|
|
aebb083180 | ||
|
|
5438549b6d | ||
|
|
0077708235 | ||
|
|
2fd99ec9f3 | ||
|
|
0d266c4990 | ||
|
|
0982675b5f | ||
|
|
3bac5d3c80 | ||
|
|
58338f4848 | ||
|
|
9c261d3a3f | ||
|
|
5441ac6640 | ||
|
|
015b04a29a | ||
|
|
12ec0abf54 | ||
|
|
c8d461cdee | ||
|
|
faecffeadd | ||
|
|
b3c76c21b4 | ||
|
|
1697735162 | ||
|
|
ecb94bac6d | ||
|
|
7ebeacf16e | ||
|
|
d0079ab66b | ||
|
|
147e400bd6 | ||
|
|
c44905ea5e | ||
|
|
98b9df06fe | ||
|
|
02473080a5 | ||
|
|
c6beb9dc0a | ||
|
|
dcce14b122 | ||
|
|
a2ac24ac74 | ||
|
|
600f812f45 | ||
|
|
e945f46f25 | ||
|
|
c78c653b0a | ||
|
|
e0b3663239 | ||
|
|
3cc9c98040 | ||
|
|
ec8213b891 | ||
|
|
ae61383742 | ||
|
|
cc90a2ad75 | ||
|
|
28634cda56 | ||
|
|
3b71fcd690 | ||
|
|
5923ac65df | ||
|
|
faffc9393d | ||
|
|
6da220f36c | ||
|
|
21d78671d6 | ||
|
|
af5a0ec0b7 | ||
|
|
ff214455a3 | ||
|
|
3e941e3e42 | ||
|
|
2f876d553f | ||
|
|
b208017117 | ||
|
|
a1dab94a61 | ||
|
|
e55b2afd60 | ||
|
|
535c3ddf6c | ||
|
|
3008d99fcd | ||
|
|
fd37339e2f | ||
|
|
e29eca203c |
@@ -6,6 +6,7 @@ jdk:
|
|||||||
- openjdk9
|
- openjdk9
|
||||||
- openjdk11
|
- openjdk11
|
||||||
- openjdk14
|
- openjdk14
|
||||||
|
- openjdk15
|
||||||
|
|
||||||
before_cache:
|
before_cache:
|
||||||
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
||||||
|
|||||||
90
CHANGELOG.md
90
CHANGELOG.md
@@ -1,6 +1,96 @@
|
|||||||
FlatLaf Change Log
|
FlatLaf Change Log
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
## 0.43
|
||||||
|
|
||||||
|
#### New features and improvements
|
||||||
|
|
||||||
|
- TabbedPane: Made tabs separator color lighter in dark themes so that it is
|
||||||
|
easier to recognize the tabbed pane.
|
||||||
|
- TabbedPane: Added top and bottom tab insets to avoid that large tab icons are
|
||||||
|
painted over active tab underline.
|
||||||
|
- TabbedPane: Support hiding separator between tabs and content area (set client
|
||||||
|
property `JTabbedPane.showContentSeparator` to `false`).
|
||||||
|
- CheckBoxMenuItem and RadioButtonMenuItem: Improved checkmark background colors
|
||||||
|
of selected menu items that have also an icon. This makes it is easier to
|
||||||
|
recognize selected menu items.
|
||||||
|
- Windows: Made scaling compatible with Windows OS scaling, which distinguish
|
||||||
|
between "screen scaling" and "text scaling". (issue #175)
|
||||||
|
|
||||||
|
#### Fixed bugs
|
||||||
|
|
||||||
|
- ComboBox: If using own `JTextField` as editor, default text field border is
|
||||||
|
now removed to avoid duplicate border.
|
||||||
|
- ComboBox: Limit popup width to screen width for very long items. (issue #182)
|
||||||
|
- FileChooser: Fixed localizing special Windows folders (e.g. "Documents") and
|
||||||
|
enabled hiding known file extensions (if enabled in Windows Explorer). (issue
|
||||||
|
#178)
|
||||||
|
- Spinner: Fixed `NullPointerException` in case that arrow buttons were removed
|
||||||
|
to create button-less spinner. (issue #181)
|
||||||
|
|
||||||
|
|
||||||
|
## 0.42
|
||||||
|
|
||||||
|
#### New features and improvements
|
||||||
|
|
||||||
|
- Demo: Improved "SplitPane & Tabs" and "Data Components" tabs.
|
||||||
|
- Demo: Menu items "File > Open" and "File > Save As" now show file choosers.
|
||||||
|
- InternalFrame: Support draggable border for resizing frame inside of the
|
||||||
|
visible frame border. (issue #121)
|
||||||
|
- `FlatUIDefaultsInspector` added (see [FlatLaf Extras](flatlaf-extras)). A
|
||||||
|
simple UI defaults inspector that shows a window with all UI defaults used in
|
||||||
|
current theme (look and feel).
|
||||||
|
- Made disabled text color slightly lighter in dark themes for better
|
||||||
|
readability. (issue #174)
|
||||||
|
- PasswordField: Support disabling Caps Lock warning icon. (issue #172)
|
||||||
|
|
||||||
|
#### Fixed bugs
|
||||||
|
|
||||||
|
- TextComponents: Fixed text color of disabled text components in dark themes.
|
||||||
|
- Custom window decorations: Fixed wrong window placement when moving window to
|
||||||
|
another screen with different scaling factor. (issue #166)
|
||||||
|
- Custom window decorations: Fixed wrong window bounds when resizing window to
|
||||||
|
another screen with different scaling factor. (issue #166)
|
||||||
|
- Fixed occasional wrong positioning of heavy weight popups when using multiple
|
||||||
|
screens with different scaling factors. (issue #166)
|
||||||
|
- ToolTip: Avoid that tooltip hides owner component. (issue #164)
|
||||||
|
|
||||||
|
|
||||||
|
## 0.41
|
||||||
|
|
||||||
|
#### New features and improvements
|
||||||
|
|
||||||
|
- Added API to register packages or folders where FlatLaf searches for
|
||||||
|
application specific properties files with custom UI defaults (see
|
||||||
|
`FlatLaf.registerCustomDefaultsSource(...)` methods).
|
||||||
|
- Demo: Show hint popups to guide users to some features of the FlatLaf Demo
|
||||||
|
application.
|
||||||
|
- Extras: `FlatSVGIcon` now allows specifying `ClassLoader` that is used to load
|
||||||
|
SVG file. (issue #163)
|
||||||
|
- Smoother transition from old to new theme, independent of UI complexity, when
|
||||||
|
using animated theme change (see [FlatLaf Extras](flatlaf-extras)).
|
||||||
|
|
||||||
|
#### Fixed bugs
|
||||||
|
|
||||||
|
- Button: "selected" state was not shown. (issue #161)
|
||||||
|
- TextArea: Update background color property if enabled or editable state
|
||||||
|
changes in the same way as Swing does it for all other text components. (issue
|
||||||
|
#147)
|
||||||
|
- Demo: Fixed restoring last used theme on startup. (regression in 0.39)
|
||||||
|
- Custom window decorations: Fixed iconify, maximize and close icon colors if
|
||||||
|
window is inactive.
|
||||||
|
- Custom window decorations: Fixed title pane background color in IntelliJ
|
||||||
|
themes if window is inactive.
|
||||||
|
- Fixed sub-pixel text rendering in animated theme change (see
|
||||||
|
[FlatLaf Extras](flatlaf-extras)).
|
||||||
|
|
||||||
|
#### Other Changes
|
||||||
|
|
||||||
|
- Extras: Updated dependency
|
||||||
|
[svgSalamander](https://github.com/JFormDesigner/svgSalamander) to version
|
||||||
|
1.1.2.3.
|
||||||
|
|
||||||
|
|
||||||
## 0.40
|
## 0.40
|
||||||
|
|
||||||
#### New features
|
#### New features
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ scales on **HiDPI** displays and runs on Java 8 or newer.
|
|||||||
The look is heavily inspired by **Darcula** and **IntelliJ** themes from
|
The look is heavily inspired by **Darcula** and **IntelliJ** themes from
|
||||||
IntelliJ IDEA 2019.2+ and uses almost the same colors and icons.
|
IntelliJ IDEA 2019.2+ and uses almost the same colors and icons.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
IntelliJ Platform Themes
|
IntelliJ Platform Themes
|
||||||
@@ -22,9 +22,7 @@ IntelliJ Platform Themes
|
|||||||
FlatLaf can use 3rd party themes created for IntelliJ Platform (see
|
FlatLaf can use 3rd party themes created for IntelliJ Platform (see
|
||||||
[IntelliJ Themes Pack](flatlaf-intellij-themes)):
|
[IntelliJ Themes Pack](flatlaf-intellij-themes)):
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
Demo
|
Demo
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
val releaseVersion = "0.40"
|
val releaseVersion = "0.43"
|
||||||
val developmentVersion = "0.41-SNAPSHOT"
|
val developmentVersion = "0.44-SNAPSHOT"
|
||||||
|
|
||||||
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
||||||
|
|
||||||
|
|||||||
@@ -216,6 +216,14 @@ public interface FlatClientProperties
|
|||||||
*/
|
*/
|
||||||
String TABBED_PANE_SHOW_TAB_SEPARATORS = "JTabbedPane.showTabSeparators";
|
String TABBED_PANE_SHOW_TAB_SEPARATORS = "JTabbedPane.showTabSeparators";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies whether the separator between tabs area and content area should be shown.
|
||||||
|
* <p>
|
||||||
|
* <strong>Component</strong> {@link javax.swing.JTabbedPane}<br>
|
||||||
|
* <strong>Value type</strong> {@link java.lang.Boolean}
|
||||||
|
*/
|
||||||
|
String TABBED_PANE_SHOW_CONTENT_SEPARATOR = "JTabbedPane.showContentSeparator";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies whether a full border is painted around a tabbed pane.
|
* Specifies whether a full border is painted around a tabbed pane.
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.awt.image.ImageFilter;
|
|||||||
import java.awt.image.ImageProducer;
|
import java.awt.image.ImageProducer;
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.io.File;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -76,6 +77,8 @@ public abstract class FlatLaf
|
|||||||
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
|
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
|
||||||
private static final String DESKTOPFONTHINTS = "awt.font.desktophints";
|
private static final String DESKTOPFONTHINTS = "awt.font.desktophints";
|
||||||
|
|
||||||
|
private static List<Object> customDefaultsSources;
|
||||||
|
|
||||||
private String desktopPropertyName;
|
private String desktopPropertyName;
|
||||||
private String desktopPropertyName2;
|
private String desktopPropertyName2;
|
||||||
private PropertyChangeListener desktopPropertyListener;
|
private PropertyChangeListener desktopPropertyListener;
|
||||||
@@ -341,6 +344,10 @@ public abstract class FlatLaf
|
|||||||
public UIDefaults getDefaults() {
|
public UIDefaults getDefaults() {
|
||||||
UIDefaults defaults = super.getDefaults();
|
UIDefaults defaults = super.getDefaults();
|
||||||
|
|
||||||
|
// add flag that indicates whether the LaF is light or dark
|
||||||
|
// (can be queried without using FlatLaf API)
|
||||||
|
defaults.put( "laf.dark", isDark() );
|
||||||
|
|
||||||
// add resource bundle for localized texts
|
// add resource bundle for localized texts
|
||||||
defaults.addResourceBundle( "com.formdev.flatlaf.resources.Bundle" );
|
defaults.addResourceBundle( "com.formdev.flatlaf.resources.Bundle" );
|
||||||
|
|
||||||
@@ -460,9 +467,11 @@ public abstract class FlatLaf
|
|||||||
uiFont = (font instanceof FontUIResource) ? (FontUIResource) font : new FontUIResource( font );
|
uiFont = (font instanceof FontUIResource) ? (FontUIResource) font : new FontUIResource( font );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fallback
|
||||||
if( uiFont == null )
|
if( uiFont == null )
|
||||||
uiFont = createCompositeFont( Font.SANS_SERIF, Font.PLAIN, 12 );
|
uiFont = createCompositeFont( Font.SANS_SERIF, Font.PLAIN, 12 );
|
||||||
|
|
||||||
|
// increase font size if system property "flatlaf.uiScale" is set
|
||||||
uiFont = UIScale.applyCustomScaleFactor( uiFont );
|
uiFont = UIScale.applyCustomScaleFactor( uiFont );
|
||||||
|
|
||||||
// use active value for all fonts to allow changing fonts in all components
|
// use active value for all fonts to allow changing fonts in all components
|
||||||
@@ -552,6 +561,87 @@ public abstract class FlatLaf
|
|||||||
defaults.put( key, value );
|
defaults.put( key, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static List<Object> getCustomDefaultsSources() {
|
||||||
|
return customDefaultsSources;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a package where FlatLaf searches for properties files with custom UI defaults.
|
||||||
|
* <p>
|
||||||
|
* This can be used to specify application specific UI defaults that override UI values
|
||||||
|
* of existing themes or to define own UI values used in custom controls.
|
||||||
|
* <p>
|
||||||
|
* There may be multiple properties files in that package for multiple themes.
|
||||||
|
* The properties file name must match the used theme class names.
|
||||||
|
* E.g. {@code FlatLightLaf.properties} for class {@link FlatLightLaf}
|
||||||
|
* or {@code FlatDarkLaf.properties} for class {@link FlatDarkLaf}.
|
||||||
|
* {@code FlatLaf.properties} is loaded first for all themes.
|
||||||
|
* <p>
|
||||||
|
* These properties files are loaded after theme and addon properties files
|
||||||
|
* and can therefore override all UI defaults.
|
||||||
|
* <p>
|
||||||
|
* Invoke this method before setting the look and feel.
|
||||||
|
*
|
||||||
|
* @param packageName a package name (e.g. "com.myapp.resources")
|
||||||
|
*/
|
||||||
|
public static void registerCustomDefaultsSource( String packageName ) {
|
||||||
|
registerCustomDefaultsSource( packageName, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void unregisterCustomDefaultsSource( String packageName ) {
|
||||||
|
unregisterCustomDefaultsSource( packageName, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a package where FlatLaf searches for properties files with custom UI defaults.
|
||||||
|
* <p>
|
||||||
|
* See {@link #registerCustomDefaultsSource(String)} for details.
|
||||||
|
*
|
||||||
|
* @param packageName a package name (e.g. "com.myapp.resources")
|
||||||
|
* @param classLoader a class loader used to find resources, or {@code null}
|
||||||
|
*/
|
||||||
|
public static void registerCustomDefaultsSource( String packageName, ClassLoader classLoader ) {
|
||||||
|
if( customDefaultsSources == null )
|
||||||
|
customDefaultsSources = new ArrayList<>();
|
||||||
|
customDefaultsSources.add( packageName );
|
||||||
|
customDefaultsSources.add( classLoader );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void unregisterCustomDefaultsSource( String packageName, ClassLoader classLoader ) {
|
||||||
|
if( customDefaultsSources == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
int size = customDefaultsSources.size();
|
||||||
|
for( int i = 0; i < size - 1; i++ ) {
|
||||||
|
Object source = customDefaultsSources.get( i );
|
||||||
|
if( packageName.equals( source ) && customDefaultsSources.get( i + 1 ) == classLoader ) {
|
||||||
|
customDefaultsSources.remove( i + 1 );
|
||||||
|
customDefaultsSources.remove( i );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a folder where FlatLaf searches for properties files with custom UI defaults.
|
||||||
|
* <p>
|
||||||
|
* See {@link #registerCustomDefaultsSource(String)} for details.
|
||||||
|
*
|
||||||
|
* @param folder a folder
|
||||||
|
*/
|
||||||
|
public static void registerCustomDefaultsSource( File folder ) {
|
||||||
|
if( customDefaultsSources == null )
|
||||||
|
customDefaultsSources = new ArrayList<>();
|
||||||
|
customDefaultsSources.add( folder );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void unregisterCustomDefaultsSource( File folder ) {
|
||||||
|
if( customDefaultsSources == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
customDefaultsSources.remove( folder );
|
||||||
|
}
|
||||||
|
|
||||||
private static void reSetLookAndFeel() {
|
private static void reSetLookAndFeel() {
|
||||||
EventQueue.invokeLater( () -> {
|
EventQueue.invokeLater( () -> {
|
||||||
LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
|
LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
|
||||||
@@ -612,6 +702,18 @@ public abstract class FlatLaf
|
|||||||
MnemonicHandler.showMnemonics( false, null );
|
MnemonicHandler.showMnemonics( false, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// do not allow overriding to avoid issues in FlatUIUtils.createSharedUI()
|
||||||
|
@Override
|
||||||
|
public final boolean equals( Object obj ) {
|
||||||
|
return super.equals( obj );
|
||||||
|
}
|
||||||
|
|
||||||
|
// do not allow overriding to avoid issues in FlatUIUtils.createSharedUI()
|
||||||
|
@Override
|
||||||
|
public final int hashCode() {
|
||||||
|
return super.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
//---- class ActiveFont ---------------------------------------------------
|
//---- class ActiveFont ---------------------------------------------------
|
||||||
|
|
||||||
private static class ActiveFont
|
private static class ActiveFont
|
||||||
|
|||||||
@@ -531,6 +531,7 @@ public class IntelliJTheme
|
|||||||
uiKeyMapping.put( "Slider.trackWidth", "" ); // ignore (used in Material Theme UI Lite)
|
uiKeyMapping.put( "Slider.trackWidth", "" ); // ignore (used in Material Theme UI Lite)
|
||||||
|
|
||||||
// TitlePane
|
// TitlePane
|
||||||
|
uiKeyCopying.put( "TitlePane.inactiveBackground", "TitlePane.background" );
|
||||||
uiKeyMapping.put( "TitlePane.infoForeground", "TitlePane.foreground" );
|
uiKeyMapping.put( "TitlePane.infoForeground", "TitlePane.foreground" );
|
||||||
uiKeyMapping.put( "TitlePane.inactiveInfoForeground", "TitlePane.inactiveForeground" );
|
uiKeyMapping.put( "TitlePane.inactiveInfoForeground", "TitlePane.inactiveForeground" );
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,18 @@ package com.formdev.flatlaf;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
@@ -115,6 +119,46 @@ class UIDefaultsLoader
|
|||||||
addonClassLoaders.add( addonClassLoader );
|
addonClassLoaders.add( addonClassLoader );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// load custom properties files (usually provides by applications)
|
||||||
|
List<Object> customDefaultsSources = FlatLaf.getCustomDefaultsSources();
|
||||||
|
int size = (customDefaultsSources != null) ? customDefaultsSources.size() : 0;
|
||||||
|
for( int i = 0; i < size; i++ ) {
|
||||||
|
Object source = customDefaultsSources.get( i );
|
||||||
|
if( source instanceof String && i + 1 < size ) {
|
||||||
|
// load from package in classloader
|
||||||
|
String packageName = (String) source;
|
||||||
|
ClassLoader classLoader = (ClassLoader) customDefaultsSources.get( ++i );
|
||||||
|
|
||||||
|
// use class loader also for instantiating classes specified in values
|
||||||
|
if( classLoader != null && !addonClassLoaders.contains( classLoader ) )
|
||||||
|
addonClassLoaders.add( classLoader );
|
||||||
|
|
||||||
|
packageName = packageName.replace( '.', '/' );
|
||||||
|
if( classLoader == null )
|
||||||
|
classLoader = FlatLaf.class.getClassLoader();
|
||||||
|
|
||||||
|
for( Class<?> lafClass : lafClasses ) {
|
||||||
|
String propertiesName = packageName + '/' + lafClass.getSimpleName() + ".properties";
|
||||||
|
try( InputStream in = classLoader.getResourceAsStream( propertiesName ) ) {
|
||||||
|
if( in != null )
|
||||||
|
properties.load( in );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if( source instanceof File ) {
|
||||||
|
// load from folder
|
||||||
|
File folder = (File) source;
|
||||||
|
for( Class<?> lafClass : lafClasses ) {
|
||||||
|
File propertiesFile = new File( folder, lafClass.getSimpleName() + ".properties" );
|
||||||
|
if( !propertiesFile.isFile() )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
try( InputStream in = new FileInputStream( propertiesFile ) ) {
|
||||||
|
properties.load( in );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// add additional defaults
|
// add additional defaults
|
||||||
if( additionalDefaults != null )
|
if( additionalDefaults != null )
|
||||||
properties.putAll( additionalDefaults );
|
properties.putAll( additionalDefaults );
|
||||||
@@ -154,6 +198,29 @@ class UIDefaultsLoader
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get (and remove) globals, which override all other defaults that end with same suffix
|
||||||
|
HashMap<String, String> globals = new HashMap<>();
|
||||||
|
Iterator<Entry<Object, Object>> it = properties.entrySet().iterator();
|
||||||
|
while( it.hasNext() ) {
|
||||||
|
Entry<Object, Object> e = it.next();
|
||||||
|
String key = (String) e.getKey();
|
||||||
|
if( key.startsWith( GLOBAL_PREFIX ) ) {
|
||||||
|
globals.put( key.substring( GLOBAL_PREFIX.length() ), (String) e.getValue() );
|
||||||
|
it.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// override UI defaults with globals
|
||||||
|
for( Object okey : defaults.keySet() ) {
|
||||||
|
if( okey instanceof String && ((String)okey).contains( "." ) ) {
|
||||||
|
String key = (String) okey;
|
||||||
|
String globalKey = key.substring( key.lastIndexOf( '.' ) + 1 );
|
||||||
|
String globalValue = globals.get( globalKey );
|
||||||
|
if( globalValue != null && !properties.containsKey( key ) )
|
||||||
|
properties.put( key, globalValue );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Function<String, String> propertiesGetter = key -> {
|
Function<String, String> propertiesGetter = key -> {
|
||||||
return properties.getProperty( key );
|
return properties.getProperty( key );
|
||||||
};
|
};
|
||||||
@@ -161,37 +228,10 @@ class UIDefaultsLoader
|
|||||||
return resolveValue( value, propertiesGetter );
|
return resolveValue( value, propertiesGetter );
|
||||||
};
|
};
|
||||||
|
|
||||||
// get globals, which override all other defaults that end with same suffix
|
// parse and add properties to UI defaults
|
||||||
HashMap<String, Object> globals = new HashMap<>();
|
|
||||||
for( Map.Entry<Object, Object> e : properties.entrySet() ) {
|
for( Map.Entry<Object, Object> e : properties.entrySet() ) {
|
||||||
String key = (String) e.getKey();
|
String key = (String) e.getKey();
|
||||||
if( !key.startsWith( GLOBAL_PREFIX ) )
|
if( key.startsWith( VARIABLE_PREFIX ) )
|
||||||
continue;
|
|
||||||
|
|
||||||
String value = resolveValue( (String) e.getValue(), propertiesGetter );
|
|
||||||
try {
|
|
||||||
globals.put( key.substring( GLOBAL_PREFIX.length() ),
|
|
||||||
parseValue( key, value, null, resolver, addonClassLoaders ) );
|
|
||||||
} catch( RuntimeException ex ) {
|
|
||||||
logParseError( Level.SEVERE, key, value, ex );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// override UI defaults with globals
|
|
||||||
for( Object key : defaults.keySet() ) {
|
|
||||||
if( key instanceof String && ((String)key).contains( "." ) ) {
|
|
||||||
String skey = (String) key;
|
|
||||||
String globalKey = skey.substring( skey.lastIndexOf( '.' ) + 1 );
|
|
||||||
Object globalValue = globals.get( globalKey );
|
|
||||||
if( globalValue != null )
|
|
||||||
defaults.put( key, globalValue );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// add non-global properties to UI defaults
|
|
||||||
for( Map.Entry<Object, Object> e : properties.entrySet() ) {
|
|
||||||
String key = (String) e.getKey();
|
|
||||||
if( key.startsWith( VARIABLE_PREFIX ) || key.startsWith( GLOBAL_PREFIX ) )
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
String value = resolveValue( (String) e.getValue(), propertiesGetter );
|
String value = resolveValue( (String) e.getValue(), propertiesGetter );
|
||||||
|
|||||||
@@ -67,8 +67,11 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault Button.focusedBackground Color optional
|
* @uiDefault Button.focusedBackground Color optional
|
||||||
* @uiDefault Button.hoverBackground Color optional
|
* @uiDefault Button.hoverBackground Color optional
|
||||||
* @uiDefault Button.pressedBackground Color optional
|
* @uiDefault Button.pressedBackground Color optional
|
||||||
|
* @uiDefault Button.selectedBackground Color
|
||||||
|
* @uiDefault Button.selectedForeground Color
|
||||||
* @uiDefault Button.disabledBackground Color optional
|
* @uiDefault Button.disabledBackground Color optional
|
||||||
* @uiDefault Button.disabledText Color
|
* @uiDefault Button.disabledText Color
|
||||||
|
* @uiDefault Button.disabledSelectedBackground Color
|
||||||
* @uiDefault Button.default.background Color
|
* @uiDefault Button.default.background Color
|
||||||
* @uiDefault Button.default.startBackground Color optional; if set, a gradient paint is used and Button.default.background is ignored
|
* @uiDefault Button.default.startBackground Color optional; if set, a gradient paint is used and Button.default.background is ignored
|
||||||
* @uiDefault Button.default.endBackground Color optional; if set, a gradient paint is used
|
* @uiDefault Button.default.endBackground Color optional; if set, a gradient paint is used
|
||||||
@@ -84,6 +87,7 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault Button.toolbar.spacingInsets Insets
|
* @uiDefault Button.toolbar.spacingInsets Insets
|
||||||
* @uiDefault Button.toolbar.hoverBackground Color
|
* @uiDefault Button.toolbar.hoverBackground Color
|
||||||
* @uiDefault Button.toolbar.pressedBackground Color
|
* @uiDefault Button.toolbar.pressedBackground Color
|
||||||
|
* @uiDefault Button.toolbar.selectedBackground Color
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
@@ -101,8 +105,11 @@ public class FlatButtonUI
|
|||||||
protected Color focusedBackground;
|
protected Color focusedBackground;
|
||||||
protected Color hoverBackground;
|
protected Color hoverBackground;
|
||||||
protected Color pressedBackground;
|
protected Color pressedBackground;
|
||||||
|
protected Color selectedBackground;
|
||||||
|
protected Color selectedForeground;
|
||||||
protected Color disabledBackground;
|
protected Color disabledBackground;
|
||||||
protected Color disabledText;
|
protected Color disabledText;
|
||||||
|
protected Color disabledSelectedBackground;
|
||||||
|
|
||||||
protected Color defaultBackground;
|
protected Color defaultBackground;
|
||||||
protected Color defaultEndBackground;
|
protected Color defaultEndBackground;
|
||||||
@@ -119,17 +126,14 @@ public class FlatButtonUI
|
|||||||
protected Insets toolbarSpacingInsets;
|
protected Insets toolbarSpacingInsets;
|
||||||
protected Color toolbarHoverBackground;
|
protected Color toolbarHoverBackground;
|
||||||
protected Color toolbarPressedBackground;
|
protected Color toolbarPressedBackground;
|
||||||
|
protected Color toolbarSelectedBackground;
|
||||||
|
|
||||||
private Icon helpButtonIcon;
|
private Icon helpButtonIcon;
|
||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatButtonUI.class, FlatButtonUI::new );
|
||||||
instance = new FlatButtonUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -150,8 +154,11 @@ public class FlatButtonUI
|
|||||||
focusedBackground = UIManager.getColor( prefix + "focusedBackground" );
|
focusedBackground = UIManager.getColor( prefix + "focusedBackground" );
|
||||||
hoverBackground = UIManager.getColor( prefix + "hoverBackground" );
|
hoverBackground = UIManager.getColor( prefix + "hoverBackground" );
|
||||||
pressedBackground = UIManager.getColor( prefix + "pressedBackground" );
|
pressedBackground = UIManager.getColor( prefix + "pressedBackground" );
|
||||||
|
selectedBackground = UIManager.getColor( prefix + "selectedBackground" );
|
||||||
|
selectedForeground = UIManager.getColor( prefix + "selectedForeground" );
|
||||||
disabledBackground = UIManager.getColor( prefix + "disabledBackground" );
|
disabledBackground = UIManager.getColor( prefix + "disabledBackground" );
|
||||||
disabledText = UIManager.getColor( prefix + "disabledText" );
|
disabledText = UIManager.getColor( prefix + "disabledText" );
|
||||||
|
disabledSelectedBackground = UIManager.getColor( prefix + "disabledSelectedBackground" );
|
||||||
|
|
||||||
if( UIManager.getBoolean( "Button.paintShadow" ) ) {
|
if( UIManager.getBoolean( "Button.paintShadow" ) ) {
|
||||||
shadowWidth = FlatUIUtils.getUIInt( "Button.shadowWidth", 2 );
|
shadowWidth = FlatUIUtils.getUIInt( "Button.shadowWidth", 2 );
|
||||||
@@ -174,6 +181,7 @@ public class FlatButtonUI
|
|||||||
toolbarSpacingInsets = UIManager.getInsets( "Button.toolbar.spacingInsets" );
|
toolbarSpacingInsets = UIManager.getInsets( "Button.toolbar.spacingInsets" );
|
||||||
toolbarHoverBackground = UIManager.getColor( prefix + "toolbar.hoverBackground" );
|
toolbarHoverBackground = UIManager.getColor( prefix + "toolbar.hoverBackground" );
|
||||||
toolbarPressedBackground = UIManager.getColor( prefix + "toolbar.pressedBackground" );
|
toolbarPressedBackground = UIManager.getColor( prefix + "toolbar.pressedBackground" );
|
||||||
|
toolbarSelectedBackground = UIManager.getColor( prefix + "toolbar.selectedBackground" );
|
||||||
|
|
||||||
helpButtonIcon = UIManager.getIcon( "HelpButton.icon" );
|
helpButtonIcon = UIManager.getIcon( "HelpButton.icon" );
|
||||||
|
|
||||||
@@ -369,6 +377,17 @@ public class FlatButtonUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Color getBackground( JComponent c ) {
|
protected Color getBackground( JComponent c ) {
|
||||||
|
if( ((AbstractButton)c).isSelected() ) {
|
||||||
|
// in toolbar use same colors for disabled and enabled because
|
||||||
|
// we assume that toolbar icon is shown disabled
|
||||||
|
boolean toolBarButton = isToolBarButton( c );
|
||||||
|
return buttonStateColor( c,
|
||||||
|
toolBarButton ? toolbarSelectedBackground : selectedBackground,
|
||||||
|
toolBarButton ? toolbarSelectedBackground : disabledSelectedBackground,
|
||||||
|
null, null,
|
||||||
|
toolBarButton ? toolbarPressedBackground : pressedBackground );
|
||||||
|
}
|
||||||
|
|
||||||
if( !c.isEnabled() )
|
if( !c.isEnabled() )
|
||||||
return disabledBackground;
|
return disabledBackground;
|
||||||
|
|
||||||
@@ -430,6 +449,9 @@ public class FlatButtonUI
|
|||||||
if( !c.isEnabled() )
|
if( !c.isEnabled() )
|
||||||
return disabledText;
|
return disabledText;
|
||||||
|
|
||||||
|
if( ((AbstractButton)c).isSelected() && !isToolBarButton( c ) )
|
||||||
|
return selectedForeground;
|
||||||
|
|
||||||
// use component foreground if explicitly set
|
// use component foreground if explicitly set
|
||||||
Color fg = c.getForeground();
|
Color fg = c.getForeground();
|
||||||
if( isCustomForeground( fg ) )
|
if( isCustomForeground( fg ) )
|
||||||
|
|||||||
@@ -42,12 +42,8 @@ import javax.swing.plaf.ComponentUI;
|
|||||||
public class FlatCheckBoxUI
|
public class FlatCheckBoxUI
|
||||||
extends FlatRadioButtonUI
|
extends FlatRadioButtonUI
|
||||||
{
|
{
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatCheckBoxUI.class, FlatCheckBoxUI::new );
|
||||||
instance = new FlatCheckBoxUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,10 +24,12 @@ import java.awt.Container;
|
|||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.GraphicsConfiguration;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.LayoutManager;
|
import java.awt.LayoutManager;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.Shape;
|
import java.awt.Shape;
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.FocusEvent;
|
import java.awt.event.FocusEvent;
|
||||||
@@ -298,6 +300,10 @@ public class FlatComboBoxUI
|
|||||||
protected void configureEditor() {
|
protected void configureEditor() {
|
||||||
super.configureEditor();
|
super.configureEditor();
|
||||||
|
|
||||||
|
// remove default text field border from editor
|
||||||
|
if( editor instanceof JTextField && ((JTextField)editor).getBorder() instanceof FlatTextBorder )
|
||||||
|
((JTextField)editor).setBorder( BorderFactory.createEmptyBorder() );
|
||||||
|
|
||||||
// explicitly make non-opaque
|
// explicitly make non-opaque
|
||||||
if( editor instanceof JComponent )
|
if( editor instanceof JComponent )
|
||||||
((JComponent)editor).setOpaque( false );
|
((JComponent)editor).setOpaque( false );
|
||||||
@@ -563,6 +569,17 @@ public class FlatComboBoxUI
|
|||||||
|
|
||||||
// make popup wider if necessary
|
// make popup wider if necessary
|
||||||
if( displayWidth > pw ) {
|
if( displayWidth > pw ) {
|
||||||
|
// limit popup width to screen width
|
||||||
|
GraphicsConfiguration gc = comboBox.getGraphicsConfiguration();
|
||||||
|
if( gc != null ) {
|
||||||
|
Rectangle screenBounds = gc.getBounds();
|
||||||
|
Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets( gc );
|
||||||
|
displayWidth = Math.min( displayWidth, screenBounds.width - screenInsets.left - screenInsets.right );
|
||||||
|
} else {
|
||||||
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
|
displayWidth = Math.min( displayWidth, screenSize.width );
|
||||||
|
}
|
||||||
|
|
||||||
int diff = displayWidth - pw;
|
int diff = displayWidth - pw;
|
||||||
pw = displayWidth;
|
pw = displayWidth;
|
||||||
|
|
||||||
|
|||||||
@@ -57,4 +57,8 @@ public class FlatEmptyBorder
|
|||||||
insets.bottom = scale( bottom );
|
insets.bottom = scale( bottom );
|
||||||
return insets;
|
return insets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Insets getUnscaledBorderInsets() {
|
||||||
|
return super.getBorderInsets();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ import javax.swing.plaf.basic.BasicInternalFrameUI;
|
|||||||
public class FlatInternalFrameUI
|
public class FlatInternalFrameUI
|
||||||
extends BasicInternalFrameUI
|
extends BasicInternalFrameUI
|
||||||
{
|
{
|
||||||
|
protected FlatWindowResizer windowResizer;
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
return new FlatInternalFrameUI( (JInternalFrame) c );
|
return new FlatInternalFrameUI( (JInternalFrame) c );
|
||||||
}
|
}
|
||||||
@@ -97,6 +99,18 @@ public class FlatInternalFrameUI
|
|||||||
super.installUI( c );
|
super.installUI( c );
|
||||||
|
|
||||||
LookAndFeel.installProperty( frame, "opaque", false );
|
LookAndFeel.installProperty( frame, "opaque", false );
|
||||||
|
|
||||||
|
windowResizer = createWindowResizer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uninstallUI( JComponent c ) {
|
||||||
|
super.uninstallUI( c );
|
||||||
|
|
||||||
|
if( windowResizer != null ) {
|
||||||
|
windowResizer.uninstall();
|
||||||
|
windowResizer = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -104,6 +118,10 @@ public class FlatInternalFrameUI
|
|||||||
return new FlatInternalFrameTitlePane( w );
|
return new FlatInternalFrameTitlePane( w );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected FlatWindowResizer createWindowResizer() {
|
||||||
|
return new FlatWindowResizer.InternalFrameResizer( frame, this::getDesktopManager );
|
||||||
|
}
|
||||||
|
|
||||||
//---- class FlatInternalFrameBorder --------------------------------------
|
//---- class FlatInternalFrameBorder --------------------------------------
|
||||||
|
|
||||||
public static class FlatInternalFrameBorder
|
public static class FlatInternalFrameBorder
|
||||||
|
|||||||
@@ -56,12 +56,8 @@ public class FlatLabelUI
|
|||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatLabelUI.class, FlatLabelUI::new );
|
||||||
instance = new FlatLabelUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -126,6 +126,9 @@ public class FlatListUI
|
|||||||
* or the application has to be changed to extend a FlatLaf renderer.
|
* or the application has to be changed to extend a FlatLaf renderer.
|
||||||
*/
|
*/
|
||||||
private void toggleSelectionColors() {
|
private void toggleSelectionColors() {
|
||||||
|
if( list == null )
|
||||||
|
return;
|
||||||
|
|
||||||
if( FlatUIUtils.isPermanentFocusOwner( list ) ) {
|
if( FlatUIUtils.isPermanentFocusOwner( list ) ) {
|
||||||
if( list.getSelectionBackground() == selectionInactiveBackground )
|
if( list.getSelectionBackground() == selectionInactiveBackground )
|
||||||
list.setSelectionBackground( selectionBackground );
|
list.setSelectionBackground( selectionBackground );
|
||||||
|
|||||||
@@ -35,11 +35,7 @@ import javax.swing.plaf.basic.BasicPanelUI;
|
|||||||
public class FlatPanelUI
|
public class FlatPanelUI
|
||||||
extends BasicPanelUI
|
extends BasicPanelUI
|
||||||
{
|
{
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatPanelUI.class, FlatPanelUI::new );
|
||||||
instance = new FlatPanelUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ import com.formdev.flatlaf.util.HiDPIUtils;
|
|||||||
* @uiDefault Component.minimumWidth int
|
* @uiDefault Component.minimumWidth int
|
||||||
* @uiDefault Component.isIntelliJTheme boolean
|
* @uiDefault Component.isIntelliJTheme boolean
|
||||||
* @uiDefault PasswordField.placeholderForeground Color
|
* @uiDefault PasswordField.placeholderForeground Color
|
||||||
|
* @uiDefault PasswordField.showCapsLock boolean
|
||||||
* @uiDefault PasswordField.capsLockIcon Icon
|
* @uiDefault PasswordField.capsLockIcon Icon
|
||||||
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
|
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
|
||||||
*
|
*
|
||||||
@@ -71,6 +72,7 @@ public class FlatPasswordFieldUI
|
|||||||
protected int minimumWidth;
|
protected int minimumWidth;
|
||||||
protected boolean isIntelliJTheme;
|
protected boolean isIntelliJTheme;
|
||||||
protected Color placeholderForeground;
|
protected Color placeholderForeground;
|
||||||
|
protected boolean showCapsLock;
|
||||||
protected Icon capsLockIcon;
|
protected Icon capsLockIcon;
|
||||||
|
|
||||||
private FocusListener focusListener;
|
private FocusListener focusListener;
|
||||||
@@ -88,6 +90,7 @@ public class FlatPasswordFieldUI
|
|||||||
minimumWidth = UIManager.getInt( "Component.minimumWidth" );
|
minimumWidth = UIManager.getInt( "Component.minimumWidth" );
|
||||||
isIntelliJTheme = UIManager.getBoolean( "Component.isIntelliJTheme" );
|
isIntelliJTheme = UIManager.getBoolean( "Component.isIntelliJTheme" );
|
||||||
placeholderForeground = UIManager.getColor( prefix + ".placeholderForeground" );
|
placeholderForeground = UIManager.getColor( prefix + ".placeholderForeground" );
|
||||||
|
showCapsLock = UIManager.getBoolean( "PasswordField.showCapsLock" );
|
||||||
capsLockIcon = UIManager.getIcon( "PasswordField.capsLockIcon" );
|
capsLockIcon = UIManager.getIcon( "PasswordField.capsLockIcon" );
|
||||||
|
|
||||||
LookAndFeel.installProperty( getComponent(), "opaque", false );
|
LookAndFeel.installProperty( getComponent(), "opaque", false );
|
||||||
@@ -160,6 +163,9 @@ public class FlatPasswordFieldUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void paintCapsLock( Graphics g ) {
|
protected void paintCapsLock( Graphics g ) {
|
||||||
|
if( !showCapsLock )
|
||||||
|
return;
|
||||||
|
|
||||||
JTextComponent c = getComponent();
|
JTextComponent c = getComponent();
|
||||||
if( !FlatUIUtils.isPermanentFocusOwner( c ) ||
|
if( !FlatUIUtils.isPermanentFocusOwner( c ) ||
|
||||||
!Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) )
|
!Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) )
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import java.awt.Component;
|
|||||||
import java.awt.Container;
|
import java.awt.Container;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import java.awt.MouseInfo;
|
||||||
import java.awt.Panel;
|
import java.awt.Panel;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
@@ -33,6 +34,7 @@ import javax.swing.JComponent;
|
|||||||
import javax.swing.JLayeredPane;
|
import javax.swing.JLayeredPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JToolTip;
|
import javax.swing.JToolTip;
|
||||||
|
import javax.swing.JWindow;
|
||||||
import javax.swing.Popup;
|
import javax.swing.Popup;
|
||||||
import javax.swing.PopupFactory;
|
import javax.swing.PopupFactory;
|
||||||
import javax.swing.RootPaneContainer;
|
import javax.swing.RootPaneContainer;
|
||||||
@@ -41,6 +43,7 @@ import javax.swing.UIManager;
|
|||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A popup factory that adds drop shadows to popups on Windows.
|
* A popup factory that adds drop shadows to popups on Windows.
|
||||||
@@ -59,19 +62,97 @@ public class FlatPopupFactory
|
|||||||
public Popup getPopup( Component owner, Component contents, int x, int y )
|
public Popup getPopup( Component owner, Component contents, int x, int y )
|
||||||
throws IllegalArgumentException
|
throws IllegalArgumentException
|
||||||
{
|
{
|
||||||
|
Point pt = fixToolTipLocation( owner, contents, x, y );
|
||||||
|
if( pt != null ) {
|
||||||
|
x = pt.x;
|
||||||
|
y = pt.y;
|
||||||
|
}
|
||||||
|
|
||||||
if( !isDropShadowPainted( owner, contents ) )
|
if( !isDropShadowPainted( owner, contents ) )
|
||||||
return new NonFlashingPopup( super.getPopup( owner, contents, x, y ), contents );
|
return new NonFlashingPopup( getPopupForScreenOfOwner( owner, contents, x, y, false ), contents );
|
||||||
|
|
||||||
// macOS and Linux adds drop shadow to heavy weight popups
|
// macOS and Linux adds drop shadow to heavy weight popups
|
||||||
if( SystemInfo.isMacOS || SystemInfo.isLinux ) {
|
if( SystemInfo.isMacOS || SystemInfo.isLinux ) {
|
||||||
Popup popup = getHeavyWeightPopup( owner, contents, x, y );
|
Popup popup = getPopupForScreenOfOwner( owner, contents, x, y, true );
|
||||||
if( popup == null )
|
if( popup == null )
|
||||||
popup = super.getPopup( owner, contents, x, y );
|
popup = getPopupForScreenOfOwner( owner, contents, x, y, false );
|
||||||
return new NonFlashingPopup( popup, contents );
|
return new NonFlashingPopup( popup, contents );
|
||||||
}
|
}
|
||||||
|
|
||||||
// create drop shadow popup
|
// create drop shadow popup
|
||||||
return new DropShadowPopup( super.getPopup( owner, contents, x, y ), owner, contents );
|
return new DropShadowPopup( getPopupForScreenOfOwner( owner, contents, x, y, false ), owner, contents );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a popup for the screen that the owner component is on.
|
||||||
|
* <p>
|
||||||
|
* PopupFactory caches heavy weight popup windows and reuses them.
|
||||||
|
* On a dual screen setup, if the popup owner has moved from one screen to the other one,
|
||||||
|
* then the cached heavy weight popup window may be connected to the wrong screen.
|
||||||
|
* If the two screens use different scaling factors, then the popup location and size
|
||||||
|
* is scaled when the popup becomes visible, which shows the popup in the wrong location
|
||||||
|
* (or on wrong screen). The re-scaling is done in WWindowPeer.setBounds() (Java 9+).
|
||||||
|
* <p>
|
||||||
|
* To fix this, dispose popup windows that are on wrong screen and get new popup.
|
||||||
|
* <p>
|
||||||
|
* This is a workaround for https://bugs.openjdk.java.net/browse/JDK-8224608
|
||||||
|
*/
|
||||||
|
private Popup getPopupForScreenOfOwner( Component owner, Component contents, int x, int y, boolean forceHeavyWeight )
|
||||||
|
throws IllegalArgumentException
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
// create new or get cached popup
|
||||||
|
Popup popup = forceHeavyWeight
|
||||||
|
? getHeavyWeightPopup( owner, contents, x, y )
|
||||||
|
: super.getPopup( owner, contents, x, y );
|
||||||
|
|
||||||
|
// get heavy weight popup window; is null for non-heavy weight popup
|
||||||
|
Window popupWindow = SwingUtilities.windowForComponent( contents );
|
||||||
|
|
||||||
|
// check whether heavy weight popup window is on same screen as owner component
|
||||||
|
if( popupWindow == null ||
|
||||||
|
popupWindow.getGraphicsConfiguration() == owner.getGraphicsConfiguration() )
|
||||||
|
return popup;
|
||||||
|
|
||||||
|
// remove contents component from popup window
|
||||||
|
if( popupWindow instanceof JWindow )
|
||||||
|
((JWindow)popupWindow).getContentPane().removeAll();
|
||||||
|
|
||||||
|
// dispose unused popup
|
||||||
|
// (do not invoke popup.hide() because this would cache the popup window)
|
||||||
|
popupWindow.dispose();
|
||||||
|
|
||||||
|
// avoid endless loop (should newer happen; PopupFactory cache size is 5)
|
||||||
|
if( ++count > 10 )
|
||||||
|
return popup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the given popup and, if necessary, fixes the location of a heavy weight popup window.
|
||||||
|
* <p>
|
||||||
|
* On a dual screen setup, where screens use different scale factors, it may happen
|
||||||
|
* that the window location changes when showing a heavy weight popup window.
|
||||||
|
* E.g. when opening an dialog on the secondary screen and making combobox popup visible.
|
||||||
|
* <p>
|
||||||
|
* This is a workaround for https://bugs.openjdk.java.net/browse/JDK-8224608
|
||||||
|
*/
|
||||||
|
private static void showPopupAndFixLocation( Popup popup, Window popupWindow ) {
|
||||||
|
if( popupWindow != null ) {
|
||||||
|
// remember location of heavy weight popup window
|
||||||
|
int x = popupWindow.getX();
|
||||||
|
int y = popupWindow.getY();
|
||||||
|
|
||||||
|
popup.show();
|
||||||
|
|
||||||
|
// restore popup window location if it has changed
|
||||||
|
// (probably scaled when screens use different scale factors)
|
||||||
|
if( popupWindow.getX() != x || popupWindow.getY() != y )
|
||||||
|
popupWindow.setLocation( x, y );
|
||||||
|
} else
|
||||||
|
popup.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isDropShadowPainted( Component owner, Component contents ) {
|
private boolean isDropShadowPainted( Component owner, Component contents ) {
|
||||||
@@ -127,6 +208,31 @@ public class FlatPopupFactory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Usually ToolTipManager places a tooltip at (mouseLocation.x, mouseLocation.y + 20).
|
||||||
|
* In case that the tooltip would be partly outside of the screen,
|
||||||
|
* ToolTipManagerthe changes the location so that the entire tooltip fits on screen.
|
||||||
|
* But this can place the tooltip under the mouse location and hide the owner component.
|
||||||
|
* <p>
|
||||||
|
* This method checks whether the current mouse location is within tooltip bounds
|
||||||
|
* and corrects the y-location so that the tooltip is placed above the mouse location.
|
||||||
|
*/
|
||||||
|
private Point fixToolTipLocation( Component owner, Component contents, int x, int y ) {
|
||||||
|
if( !(contents instanceof JToolTip) )
|
||||||
|
return null;
|
||||||
|
|
||||||
|
Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
|
||||||
|
Dimension tipSize = contents.getPreferredSize();
|
||||||
|
|
||||||
|
// check whether mouse location is within tooltip bounds
|
||||||
|
Rectangle tipBounds = new Rectangle( x, y, tipSize.width, tipSize.height );
|
||||||
|
if( !tipBounds.contains( mouseLocation ) )
|
||||||
|
return null;
|
||||||
|
|
||||||
|
// place tooltip above mouse location
|
||||||
|
return new Point( x, mouseLocation.y - tipSize.height - UIScale.scale( 20 ) );
|
||||||
|
}
|
||||||
|
|
||||||
//---- class NonFlashingPopup ---------------------------------------------
|
//---- class NonFlashingPopup ---------------------------------------------
|
||||||
|
|
||||||
private class NonFlashingPopup
|
private class NonFlashingPopup
|
||||||
@@ -157,7 +263,7 @@ public class FlatPopupFactory
|
|||||||
@Override
|
@Override
|
||||||
public void show() {
|
public void show() {
|
||||||
if( delegate != null ) {
|
if( delegate != null ) {
|
||||||
delegate.show();
|
showPopupAndFixLocation( delegate, popupWindow );
|
||||||
|
|
||||||
// increase tooltip size if necessary because it may be too small on HiDPI screens
|
// increase tooltip size if necessary because it may be too small on HiDPI screens
|
||||||
// https://bugs.openjdk.java.net/browse/JDK-8213535
|
// https://bugs.openjdk.java.net/browse/JDK-8213535
|
||||||
@@ -249,7 +355,7 @@ public class FlatPopupFactory
|
|||||||
// create heavy weight popup for drop shadow
|
// create heavy weight popup for drop shadow
|
||||||
int x = popupWindow.getX() - insets.left;
|
int x = popupWindow.getX() - insets.left;
|
||||||
int y = popupWindow.getY() - insets.top;
|
int y = popupWindow.getY() - insets.top;
|
||||||
dropShadowDelegate = getHeavyWeightPopup( owner, dropShadowPanel, x, y );
|
dropShadowDelegate = getPopupForScreenOfOwner( owner, dropShadowPanel, x, y, true );
|
||||||
|
|
||||||
// make drop shadow popup window translucent
|
// make drop shadow popup window translucent
|
||||||
dropShadowWindow = SwingUtilities.windowForComponent( dropShadowPanel );
|
dropShadowWindow = SwingUtilities.windowForComponent( dropShadowPanel );
|
||||||
@@ -291,7 +397,7 @@ public class FlatPopupFactory
|
|||||||
@Override
|
@Override
|
||||||
public void show() {
|
public void show() {
|
||||||
if( dropShadowDelegate != null )
|
if( dropShadowDelegate != null )
|
||||||
dropShadowDelegate.show();
|
showPopupAndFixLocation( dropShadowDelegate, dropShadowWindow );
|
||||||
|
|
||||||
if( mediumWeightPanel != null )
|
if( mediumWeightPanel != null )
|
||||||
showMediumWeightDropShadow();
|
showMediumWeightDropShadow();
|
||||||
|
|||||||
@@ -38,12 +38,8 @@ import javax.swing.plaf.ComponentUI;
|
|||||||
public class FlatPopupMenuSeparatorUI
|
public class FlatPopupMenuSeparatorUI
|
||||||
extends FlatSeparatorUI
|
extends FlatSeparatorUI
|
||||||
{
|
{
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatPopupMenuSeparatorUI.class, FlatPopupMenuSeparatorUI::new );
|
||||||
instance = new FlatPopupMenuSeparatorUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -60,12 +60,8 @@ public class FlatRadioButtonUI
|
|||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatRadioButtonUI.class, FlatRadioButtonUI::new );
|
||||||
instance = new FlatRadioButtonUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ public class FlatRootPaneUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected FlatWindowResizer createWindowResizer() {
|
protected FlatWindowResizer createWindowResizer() {
|
||||||
return new FlatWindowResizer( rootPane );
|
return new FlatWindowResizer.WindowResizer( rootPane );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected FlatTitlePane createTitlePane() {
|
protected FlatTitlePane createTitlePane() {
|
||||||
|
|||||||
@@ -52,12 +52,8 @@ public class FlatSeparatorUI
|
|||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatSeparatorUI.class, FlatSeparatorUI::new );
|
||||||
instance = new FlatSeparatorUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -268,31 +268,34 @@ public class FlatSpinnerUI
|
|||||||
|
|
||||||
int width = c.getWidth();
|
int width = c.getWidth();
|
||||||
int height = c.getHeight();
|
int height = c.getHeight();
|
||||||
Component nextButton = getHandler().nextButton;
|
|
||||||
int arrowX = nextButton.getX();
|
|
||||||
int arrowWidth = nextButton.getWidth();
|
|
||||||
boolean paintButton = !"none".equals( buttonStyle );
|
|
||||||
boolean enabled = spinner.isEnabled();
|
boolean enabled = spinner.isEnabled();
|
||||||
boolean isLeftToRight = spinner.getComponentOrientation().isLeftToRight();
|
|
||||||
|
|
||||||
// paint background
|
// paint background
|
||||||
g2.setColor( getBackground( enabled ) );
|
g2.setColor( getBackground( enabled ) );
|
||||||
FlatUIUtils.paintComponentBackground( g2, 0, 0, width, height, focusWidth, arc );
|
FlatUIUtils.paintComponentBackground( g2, 0, 0, width, height, focusWidth, arc );
|
||||||
|
|
||||||
// paint arrow buttons background
|
// paint button background and separator
|
||||||
if( paintButton && enabled ) {
|
boolean paintButton = !"none".equals( buttonStyle );
|
||||||
g2.setColor( buttonBackground );
|
Handler handler = getHandler();
|
||||||
Shape oldClip = g2.getClip();
|
if( paintButton && (handler.nextButton != null || handler.previousButton != null) ) {
|
||||||
if( isLeftToRight )
|
Component button = (handler.nextButton != null) ? handler.nextButton : handler.previousButton;
|
||||||
g2.clipRect( arrowX, 0, width - arrowX, height );
|
int arrowX = button.getX();
|
||||||
else
|
int arrowWidth = button.getWidth();
|
||||||
g2.clipRect( 0, 0, arrowX + arrowWidth, height );
|
boolean isLeftToRight = spinner.getComponentOrientation().isLeftToRight();
|
||||||
FlatUIUtils.paintComponentBackground( g2, 0, 0, width, height, focusWidth, arc );
|
|
||||||
g2.setClip( oldClip );
|
|
||||||
}
|
|
||||||
|
|
||||||
// paint vertical line between value and arrow buttons
|
// paint arrow buttons background
|
||||||
if( paintButton ) {
|
if( enabled ) {
|
||||||
|
g2.setColor( buttonBackground );
|
||||||
|
Shape oldClip = g2.getClip();
|
||||||
|
if( isLeftToRight )
|
||||||
|
g2.clipRect( arrowX, 0, width - arrowX, height );
|
||||||
|
else
|
||||||
|
g2.clipRect( 0, 0, arrowX + arrowWidth, height );
|
||||||
|
FlatUIUtils.paintComponentBackground( g2, 0, 0, width, height, focusWidth, arc );
|
||||||
|
g2.setClip( oldClip );
|
||||||
|
}
|
||||||
|
|
||||||
|
// paint vertical line between value and arrow buttons
|
||||||
g2.setColor( enabled ? borderColor : disabledBorderColor );
|
g2.setColor( enabled ? borderColor : disabledBorderColor );
|
||||||
float lw = scale( 1f );
|
float lw = scale( 1f );
|
||||||
float lx = isLeftToRight ? arrowX : arrowX + arrowWidth - lw;
|
float lx = isLeftToRight ? arrowX : arrowX + arrowWidth - lw;
|
||||||
@@ -359,7 +362,7 @@ public class FlatSpinnerUI
|
|||||||
|
|
||||||
if( nextButton == null && previousButton == null ) {
|
if( nextButton == null && previousButton == null ) {
|
||||||
if( editor != null )
|
if( editor != null )
|
||||||
editor.setBounds( r );
|
editor.setBounds( FlatUIUtils.subtractInsets( r, padding ) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class FlatTabbedPaneUI
|
|||||||
|
|
||||||
switch( e.getPropertyName() ) {
|
switch( e.getPropertyName() ) {
|
||||||
case TABBED_PANE_SHOW_TAB_SEPARATORS:
|
case TABBED_PANE_SHOW_TAB_SEPARATORS:
|
||||||
|
case TABBED_PANE_SHOW_CONTENT_SEPARATOR:
|
||||||
case TABBED_PANE_HAS_FULL_BORDER:
|
case TABBED_PANE_HAS_FULL_BORDER:
|
||||||
case TABBED_PANE_TAB_HEIGHT:
|
case TABBED_PANE_TAB_HEIGHT:
|
||||||
tabPane.revalidate();
|
tabPane.revalidate();
|
||||||
@@ -255,6 +256,9 @@ public class FlatTabbedPaneUI
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected Insets getContentBorderInsets( int tabPlacement ) {
|
protected Insets getContentBorderInsets( int tabPlacement ) {
|
||||||
|
if( contentSeparatorHeight == 0 || !clientPropertyBoolean( tabPane, TABBED_PANE_SHOW_CONTENT_SEPARATOR, true ) )
|
||||||
|
return new Insets( 0, 0, 0, 0 );
|
||||||
|
|
||||||
boolean hasFullBorder = clientPropertyBoolean( tabPane, TABBED_PANE_HAS_FULL_BORDER, this.hasFullBorder );
|
boolean hasFullBorder = clientPropertyBoolean( tabPane, TABBED_PANE_HAS_FULL_BORDER, this.hasFullBorder );
|
||||||
int sh = scale( contentSeparatorHeight );
|
int sh = scale( contentSeparatorHeight );
|
||||||
Insets insets = hasFullBorder ? new Insets( sh, sh, sh, sh ) : new Insets( sh, 0, 0, 0 );
|
Insets insets = hasFullBorder ? new Insets( sh, sh, sh, sh ) : new Insets( sh, 0, 0, 0 );
|
||||||
@@ -359,7 +363,10 @@ public class FlatTabbedPaneUI
|
|||||||
protected void paintTabSelection( Graphics g, int tabPlacement, int x, int y, int w, int h ) {
|
protected void paintTabSelection( Graphics g, int tabPlacement, int x, int y, int w, int h ) {
|
||||||
// increase clip bounds in scroll-tab-layout to paint over the separator line
|
// increase clip bounds in scroll-tab-layout to paint over the separator line
|
||||||
Rectangle clipBounds = isScrollTabLayout() ? g.getClipBounds() : null;
|
Rectangle clipBounds = isScrollTabLayout() ? g.getClipBounds() : null;
|
||||||
if( clipBounds != null ) {
|
if( clipBounds != null &&
|
||||||
|
this.contentSeparatorHeight != 0 &&
|
||||||
|
clientPropertyBoolean( tabPane, TABBED_PANE_SHOW_CONTENT_SEPARATOR, true ) )
|
||||||
|
{
|
||||||
Rectangle newClipBounds = new Rectangle( clipBounds );
|
Rectangle newClipBounds = new Rectangle( clipBounds );
|
||||||
int contentSeparatorHeight = scale( this.contentSeparatorHeight );
|
int contentSeparatorHeight = scale( this.contentSeparatorHeight );
|
||||||
switch( tabPlacement ) {
|
switch( tabPlacement ) {
|
||||||
@@ -436,43 +443,49 @@ public class FlatTabbedPaneUI
|
|||||||
|
|
||||||
// remove tabs from bounds
|
// remove tabs from bounds
|
||||||
switch( tabPlacement ) {
|
switch( tabPlacement ) {
|
||||||
case LEFT:
|
|
||||||
x += calculateTabAreaWidth( tabPlacement, runCount, maxTabWidth );
|
|
||||||
if( tabsOverlapBorder )
|
|
||||||
x -= tabAreaInsets.right;
|
|
||||||
w -= (x - insets.left);
|
|
||||||
break;
|
|
||||||
case RIGHT:
|
|
||||||
w -= calculateTabAreaWidth( tabPlacement, runCount, maxTabWidth );
|
|
||||||
if( tabsOverlapBorder )
|
|
||||||
w += tabAreaInsets.left;
|
|
||||||
break;
|
|
||||||
case BOTTOM:
|
|
||||||
h -= calculateTabAreaHeight( tabPlacement, runCount, maxTabHeight );
|
|
||||||
if( tabsOverlapBorder )
|
|
||||||
h += tabAreaInsets.top;
|
|
||||||
break;
|
|
||||||
case TOP:
|
case TOP:
|
||||||
default:
|
default:
|
||||||
y += calculateTabAreaHeight( tabPlacement, runCount, maxTabHeight );
|
y += calculateTabAreaHeight( tabPlacement, runCount, maxTabHeight );
|
||||||
if( tabsOverlapBorder )
|
if( tabsOverlapBorder )
|
||||||
y -= tabAreaInsets.bottom;
|
y -= tabAreaInsets.bottom;
|
||||||
h -= (y - insets.top);
|
h -= (y - insets.top);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BOTTOM:
|
||||||
|
h -= calculateTabAreaHeight( tabPlacement, runCount, maxTabHeight );
|
||||||
|
if( tabsOverlapBorder )
|
||||||
|
h += tabAreaInsets.top;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LEFT:
|
||||||
|
x += calculateTabAreaWidth( tabPlacement, runCount, maxTabWidth );
|
||||||
|
if( tabsOverlapBorder )
|
||||||
|
x -= tabAreaInsets.right;
|
||||||
|
w -= (x - insets.left);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RIGHT:
|
||||||
|
w -= calculateTabAreaWidth( tabPlacement, runCount, maxTabWidth );
|
||||||
|
if( tabsOverlapBorder )
|
||||||
|
w += tabAreaInsets.left;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// compute insets for separator or full border
|
if( contentSeparatorHeight != 0 && clientPropertyBoolean( tabPane, TABBED_PANE_SHOW_CONTENT_SEPARATOR, true ) ) {
|
||||||
boolean hasFullBorder = clientPropertyBoolean( tabPane, TABBED_PANE_HAS_FULL_BORDER, this.hasFullBorder );
|
// compute insets for separator or full border
|
||||||
int sh = scale( contentSeparatorHeight * 100 ); // multiply by 100 because rotateInsets() does not use floats
|
boolean hasFullBorder = clientPropertyBoolean( tabPane, TABBED_PANE_HAS_FULL_BORDER, this.hasFullBorder );
|
||||||
Insets ci = new Insets( 0, 0, 0, 0 );
|
int sh = scale( contentSeparatorHeight * 100 ); // multiply by 100 because rotateInsets() does not use floats
|
||||||
rotateInsets( hasFullBorder ? new Insets( sh, sh, sh, sh ) : new Insets( sh, 0, 0, 0 ), ci, tabPlacement );
|
Insets ci = new Insets( 0, 0, 0, 0 );
|
||||||
|
rotateInsets( hasFullBorder ? new Insets( sh, sh, sh, sh ) : new Insets( sh, 0, 0, 0 ), ci, tabPlacement );
|
||||||
|
|
||||||
// paint content area
|
// paint content separator or full border
|
||||||
g.setColor( contentAreaColor );
|
g.setColor( contentAreaColor );
|
||||||
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
||||||
path.append( new Rectangle2D.Float( x, y, w, h ), false );
|
path.append( new Rectangle2D.Float( x, y, w, h ), false );
|
||||||
path.append( new Rectangle2D.Float( x + (ci.left / 100f), y + (ci.top / 100f),
|
path.append( new Rectangle2D.Float( x + (ci.left / 100f), y + (ci.top / 100f),
|
||||||
w - (ci.left / 100f) - (ci.right / 100f), h - (ci.top / 100f) - (ci.bottom / 100f) ), false );
|
w - (ci.left / 100f) - (ci.right / 100f), h - (ci.top / 100f) - (ci.bottom / 100f) ), false );
|
||||||
((Graphics2D)g).fill( path );
|
((Graphics2D)g).fill( path );
|
||||||
|
}
|
||||||
|
|
||||||
// repaint selection in scroll-tab-layout because it may be painted before
|
// repaint selection in scroll-tab-layout because it may be painted before
|
||||||
// the content border was painted (from BasicTabbedPaneUI$ScrollableTabPanel)
|
// the content border was painted (from BasicTabbedPaneUI$ScrollableTabPanel)
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ public class FlatTableHeaderUI
|
|||||||
g2.setColor( separatorColor );
|
g2.setColor( separatorColor );
|
||||||
|
|
||||||
int sepCount = columnCount;
|
int sepCount = columnCount;
|
||||||
if( header.getTable().getAutoResizeMode() != JTable.AUTO_RESIZE_OFF && !isVerticalScrollBarVisible() )
|
if( header.getTable() != null && header.getTable().getAutoResizeMode() != JTable.AUTO_RESIZE_OFF && !isVerticalScrollBarVisible() )
|
||||||
sepCount--;
|
sepCount--;
|
||||||
|
|
||||||
if( header.getComponentOrientation().isLeftToRight() ) {
|
if( header.getComponentOrientation().isLeftToRight() ) {
|
||||||
|
|||||||
@@ -188,6 +188,9 @@ public class FlatTableUI
|
|||||||
* or the application has to be changed to extend a FlatLaf renderer.
|
* or the application has to be changed to extend a FlatLaf renderer.
|
||||||
*/
|
*/
|
||||||
private void toggleSelectionColors() {
|
private void toggleSelectionColors() {
|
||||||
|
if( table == null )
|
||||||
|
return;
|
||||||
|
|
||||||
if( FlatUIUtils.isPermanentFocusOwner( table ) ) {
|
if( FlatUIUtils.isPermanentFocusOwner( table ) ) {
|
||||||
if( table.getSelectionBackground() == selectionInactiveBackground )
|
if( table.getSelectionBackground() == selectionInactiveBackground )
|
||||||
table.setSelectionBackground( selectionBackground );
|
table.setSelectionBackground( selectionBackground );
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class FlatTextAreaUI
|
|||||||
{
|
{
|
||||||
protected int minimumWidth;
|
protected int minimumWidth;
|
||||||
protected boolean isIntelliJTheme;
|
protected boolean isIntelliJTheme;
|
||||||
|
protected Color background;
|
||||||
protected Color disabledBackground;
|
protected Color disabledBackground;
|
||||||
protected Color inactiveBackground;
|
protected Color inactiveBackground;
|
||||||
|
|
||||||
@@ -67,12 +68,20 @@ public class FlatTextAreaUI
|
|||||||
return new FlatTextAreaUI();
|
return new FlatTextAreaUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void installUI( JComponent c ) {
|
||||||
|
super.installUI( c );
|
||||||
|
|
||||||
|
updateBackground();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void installDefaults() {
|
protected void installDefaults() {
|
||||||
super.installDefaults();
|
super.installDefaults();
|
||||||
|
|
||||||
minimumWidth = UIManager.getInt( "Component.minimumWidth" );
|
minimumWidth = UIManager.getInt( "Component.minimumWidth" );
|
||||||
isIntelliJTheme = UIManager.getBoolean( "Component.isIntelliJTheme" );
|
isIntelliJTheme = UIManager.getBoolean( "Component.isIntelliJTheme" );
|
||||||
|
background = UIManager.getColor( "TextArea.background" );
|
||||||
disabledBackground = UIManager.getColor( "TextArea.disabledBackground" );
|
disabledBackground = UIManager.getColor( "TextArea.disabledBackground" );
|
||||||
inactiveBackground = UIManager.getColor( "TextArea.inactiveBackground" );
|
inactiveBackground = UIManager.getColor( "TextArea.inactiveBackground" );
|
||||||
}
|
}
|
||||||
@@ -81,6 +90,7 @@ public class FlatTextAreaUI
|
|||||||
protected void uninstallDefaults() {
|
protected void uninstallDefaults() {
|
||||||
super.uninstallDefaults();
|
super.uninstallDefaults();
|
||||||
|
|
||||||
|
background = null;
|
||||||
disabledBackground = null;
|
disabledBackground = null;
|
||||||
inactiveBackground = null;
|
inactiveBackground = null;
|
||||||
}
|
}
|
||||||
@@ -89,26 +99,36 @@ public class FlatTextAreaUI
|
|||||||
protected void propertyChange( PropertyChangeEvent e ) {
|
protected void propertyChange( PropertyChangeEvent e ) {
|
||||||
super.propertyChange( e );
|
super.propertyChange( e );
|
||||||
FlatEditorPaneUI.propertyChange( getComponent(), e );
|
FlatEditorPaneUI.propertyChange( getComponent(), e );
|
||||||
|
|
||||||
|
switch( e.getPropertyName() ) {
|
||||||
|
case "editable":
|
||||||
|
case "enabled":
|
||||||
|
updateBackground();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void updateBackground() {
|
||||||
protected void paintSafely( Graphics g ) {
|
|
||||||
super.paintSafely( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void paintBackground( Graphics g ) {
|
|
||||||
JTextComponent c = getComponent();
|
JTextComponent c = getComponent();
|
||||||
|
|
||||||
Color background = c.getBackground();
|
Color background = c.getBackground();
|
||||||
g.setColor( !(background instanceof UIResource)
|
if( !(background instanceof UIResource) )
|
||||||
? background
|
return;
|
||||||
: (isIntelliJTheme && (!c.isEnabled() || !c.isEditable())
|
|
||||||
? FlatUIUtils.getParentBackground( c )
|
// do not update background if it currently has a unknown color (assigned from outside)
|
||||||
: (!c.isEnabled()
|
if( background != this.background &&
|
||||||
? disabledBackground
|
background != disabledBackground &&
|
||||||
: (!c.isEditable() ? inactiveBackground : background))) );
|
background != inactiveBackground )
|
||||||
g.fillRect( 0, 0, c.getWidth(), c.getHeight() );
|
return;
|
||||||
|
|
||||||
|
Color newBackground = !c.isEnabled()
|
||||||
|
? disabledBackground
|
||||||
|
: (!c.isEditable()
|
||||||
|
? inactiveBackground
|
||||||
|
: this.background);
|
||||||
|
|
||||||
|
if( newBackground != background )
|
||||||
|
c.setBackground( newBackground );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -128,4 +148,22 @@ public class FlatTextAreaUI
|
|||||||
|
|
||||||
return FlatEditorPaneUI.applyMinimumWidth( c, size, minimumWidth );
|
return FlatEditorPaneUI.applyMinimumWidth( c, size, minimumWidth );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintSafely( Graphics g ) {
|
||||||
|
super.paintSafely( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintBackground( Graphics g ) {
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
|
||||||
|
// for compatibility with IntelliJ themes
|
||||||
|
if( isIntelliJTheme && (!c.isEnabled() || !c.isEditable()) && (c.getBackground() instanceof UIResource) ) {
|
||||||
|
FlatUIUtils.paintParentBackground( g, c );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
super.paintBackground( g );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -240,12 +240,15 @@ public class FlatTitlePane
|
|||||||
protected void activeChanged( boolean active ) {
|
protected void activeChanged( boolean active ) {
|
||||||
boolean hasEmbeddedMenuBar = rootPane.getJMenuBar() != null && isMenuBarEmbedded();
|
boolean hasEmbeddedMenuBar = rootPane.getJMenuBar() != null && isMenuBarEmbedded();
|
||||||
Color background = FlatUIUtils.nonUIResource( active ? activeBackground : inactiveBackground );
|
Color background = FlatUIUtils.nonUIResource( active ? activeBackground : inactiveBackground );
|
||||||
Color foreground = FlatUIUtils.nonUIResource( active
|
Color foreground = FlatUIUtils.nonUIResource( active ? activeForeground : inactiveForeground );
|
||||||
? (hasEmbeddedMenuBar ? embeddedForeground : activeForeground)
|
Color titleForeground = (hasEmbeddedMenuBar && active) ? FlatUIUtils.nonUIResource( embeddedForeground ) : foreground;
|
||||||
: inactiveForeground );
|
|
||||||
|
|
||||||
setBackground( background );
|
setBackground( background );
|
||||||
titleLabel.setForeground( foreground );
|
titleLabel.setForeground( titleForeground );
|
||||||
|
iconifyButton.setForeground( foreground );
|
||||||
|
maximizeButton.setForeground( foreground );
|
||||||
|
restoreButton.setForeground( foreground );
|
||||||
|
closeButton.setForeground( foreground );
|
||||||
|
|
||||||
titleLabel.setHorizontalAlignment( hasEmbeddedMenuBar ? SwingConstants.CENTER : SwingConstants.LEADING );
|
titleLabel.setHorizontalAlignment( hasEmbeddedMenuBar ? SwingConstants.CENTER : SwingConstants.LEADING );
|
||||||
|
|
||||||
@@ -751,8 +754,7 @@ debug*/
|
|||||||
|
|
||||||
//---- interface MouseListener ----
|
//---- interface MouseListener ----
|
||||||
|
|
||||||
private int lastXOnScreen;
|
private Point dragOffset;
|
||||||
private int lastYOnScreen;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked( MouseEvent e ) {
|
public void mouseClicked( MouseEvent e ) {
|
||||||
@@ -776,8 +778,10 @@ debug*/
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed( MouseEvent e ) {
|
public void mousePressed( MouseEvent e ) {
|
||||||
lastXOnScreen = e.getXOnScreen();
|
if( window == null )
|
||||||
lastYOnScreen = e.getYOnScreen();
|
return; // should newer occur
|
||||||
|
|
||||||
|
dragOffset = SwingUtilities.convertPoint( FlatTitlePane.this, e.getPoint(), window );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void mouseReleased( MouseEvent e ) {}
|
@Override public void mouseReleased( MouseEvent e ) {}
|
||||||
@@ -788,46 +792,45 @@ debug*/
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDragged( MouseEvent e ) {
|
public void mouseDragged( MouseEvent e ) {
|
||||||
|
if( window == null )
|
||||||
|
return; // should newer occur
|
||||||
|
|
||||||
if( hasJBRCustomDecoration() )
|
if( hasJBRCustomDecoration() )
|
||||||
return; // do nothing if running in JBR
|
return; // do nothing if running in JBR
|
||||||
|
|
||||||
int xOnScreen = e.getXOnScreen();
|
|
||||||
int yOnScreen = e.getYOnScreen();
|
|
||||||
if( lastXOnScreen == xOnScreen && lastYOnScreen == yOnScreen )
|
|
||||||
return;
|
|
||||||
|
|
||||||
// restore window if it is maximized
|
// restore window if it is maximized
|
||||||
if( window instanceof Frame ) {
|
if( window instanceof Frame ) {
|
||||||
Frame frame = (Frame) window;
|
Frame frame = (Frame) window;
|
||||||
int state = frame.getExtendedState();
|
int state = frame.getExtendedState();
|
||||||
if( (state & Frame.MAXIMIZED_BOTH) != 0 ) {
|
if( (state & Frame.MAXIMIZED_BOTH) != 0 ) {
|
||||||
int maximizedX = window.getX();
|
int maximizedWidth = window.getWidth();
|
||||||
int maximizedY = window.getY();
|
|
||||||
|
|
||||||
// restore window size, which also moves window to pre-maximized location
|
// restore window size, which also moves window to pre-maximized location
|
||||||
frame.setExtendedState( state & ~Frame.MAXIMIZED_BOTH );
|
frame.setExtendedState( state & ~Frame.MAXIMIZED_BOTH );
|
||||||
|
|
||||||
|
// fix drag offset to ensure that window remains under mouse position
|
||||||
|
// for the case that dragging starts in the right area of the maximized window
|
||||||
int restoredWidth = window.getWidth();
|
int restoredWidth = window.getWidth();
|
||||||
int newX = maximizedX;
|
int center = restoredWidth / 2;
|
||||||
JComponent rightComp = getComponentOrientation().isLeftToRight() ? buttonPanel : leftPanel;
|
if( dragOffset.x > center ) {
|
||||||
if( xOnScreen >= maximizedX + restoredWidth - rightComp.getWidth() - 10 )
|
// this is same/similar to what Windows 10 does
|
||||||
newX = xOnScreen + rightComp.getWidth() + 10 - restoredWidth;
|
if( dragOffset.x > maximizedWidth - center )
|
||||||
|
dragOffset.x = restoredWidth - (maximizedWidth - dragOffset.x);
|
||||||
// move window near mouse
|
else
|
||||||
window.setLocation( newX, maximizedY );
|
dragOffset.x = center;
|
||||||
return;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// compute new window location
|
// compute new window location
|
||||||
int newX = window.getX() + (xOnScreen - lastXOnScreen);
|
int newX = e.getXOnScreen() - dragOffset.x;
|
||||||
int newY = window.getY() + (yOnScreen - lastYOnScreen);
|
int newY = e.getYOnScreen() - dragOffset.y;
|
||||||
|
|
||||||
|
if( newX == window.getX() && newY == window.getY() )
|
||||||
|
return;
|
||||||
|
|
||||||
// move window
|
// move window
|
||||||
window.setLocation( newX, newY );
|
window.setLocation( newX, newY );
|
||||||
|
|
||||||
lastXOnScreen = xOnScreen;
|
|
||||||
lastYOnScreen = yOnScreen;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void mouseMoved( MouseEvent e ) {}
|
@Override public void mouseMoved( MouseEvent e ) {}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import java.awt.Component;
|
|||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import javax.swing.AbstractButton;
|
import javax.swing.AbstractButton;
|
||||||
import javax.swing.ButtonModel;
|
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JToggleButton;
|
import javax.swing.JToggleButton;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
@@ -50,18 +49,17 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault ToggleButton.startBackground Color optional; if set, a gradient paint is used and ToggleButton.background is ignored
|
* @uiDefault ToggleButton.startBackground Color optional; if set, a gradient paint is used and ToggleButton.background is ignored
|
||||||
* @uiDefault ToggleButton.endBackground Color optional; if set, a gradient paint is used
|
* @uiDefault ToggleButton.endBackground Color optional; if set, a gradient paint is used
|
||||||
* @uiDefault ToggleButton.pressedBackground Color
|
* @uiDefault ToggleButton.pressedBackground Color
|
||||||
* @uiDefault ToggleButton.disabledBackground Color optional
|
|
||||||
* @uiDefault ToggleButton.disabledText Color
|
|
||||||
* @uiDefault ToggleButton.toolbar.hoverBackground Color
|
|
||||||
* @uiDefault ToggleButton.toolbar.pressedBackground Color
|
|
||||||
*
|
|
||||||
* <!-- FlatToggleButtonUI -->
|
|
||||||
*
|
|
||||||
* @uiDefault ToggleButton.selectedBackground Color
|
* @uiDefault ToggleButton.selectedBackground Color
|
||||||
* @uiDefault ToggleButton.selectedForeground Color
|
* @uiDefault ToggleButton.selectedForeground Color
|
||||||
|
* @uiDefault ToggleButton.disabledBackground Color optional
|
||||||
|
* @uiDefault ToggleButton.disabledText Color
|
||||||
* @uiDefault ToggleButton.disabledSelectedBackground Color
|
* @uiDefault ToggleButton.disabledSelectedBackground Color
|
||||||
|
* @uiDefault ToggleButton.toolbar.hoverBackground Color
|
||||||
|
* @uiDefault ToggleButton.toolbar.pressedBackground Color
|
||||||
* @uiDefault ToggleButton.toolbar.selectedBackground Color
|
* @uiDefault ToggleButton.toolbar.selectedBackground Color
|
||||||
*
|
*
|
||||||
|
* <!-- FlatToggleButtonUI -->
|
||||||
|
*
|
||||||
* @uiDefault ToggleButton.tab.underlineHeight int
|
* @uiDefault ToggleButton.tab.underlineHeight int
|
||||||
* @uiDefault ToggleButton.tab.underlineColor Color
|
* @uiDefault ToggleButton.tab.underlineColor Color
|
||||||
* @uiDefault ToggleButton.tab.disabledUnderlineColor Color
|
* @uiDefault ToggleButton.tab.disabledUnderlineColor Color
|
||||||
@@ -75,12 +73,6 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
public class FlatToggleButtonUI
|
public class FlatToggleButtonUI
|
||||||
extends FlatButtonUI
|
extends FlatButtonUI
|
||||||
{
|
{
|
||||||
protected Color selectedBackground;
|
|
||||||
protected Color selectedForeground;
|
|
||||||
protected Color disabledSelectedBackground;
|
|
||||||
|
|
||||||
protected Color toolbarSelectedBackground;
|
|
||||||
|
|
||||||
protected int tabUnderlineHeight;
|
protected int tabUnderlineHeight;
|
||||||
protected Color tabUnderlineColor;
|
protected Color tabUnderlineColor;
|
||||||
protected Color tabDisabledUnderlineColor;
|
protected Color tabDisabledUnderlineColor;
|
||||||
@@ -90,12 +82,8 @@ public class FlatToggleButtonUI
|
|||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatToggleButtonUI.class, FlatToggleButtonUI::new );
|
||||||
instance = new FlatToggleButtonUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -108,12 +96,6 @@ public class FlatToggleButtonUI
|
|||||||
super.installDefaults( b );
|
super.installDefaults( b );
|
||||||
|
|
||||||
if( !defaults_initialized ) {
|
if( !defaults_initialized ) {
|
||||||
selectedBackground = UIManager.getColor( "ToggleButton.selectedBackground" );
|
|
||||||
selectedForeground = UIManager.getColor( "ToggleButton.selectedForeground" );
|
|
||||||
disabledSelectedBackground = UIManager.getColor( "ToggleButton.disabledSelectedBackground" );
|
|
||||||
|
|
||||||
toolbarSelectedBackground = UIManager.getColor( "ToggleButton.toolbar.selectedBackground" );
|
|
||||||
|
|
||||||
tabUnderlineHeight = UIManager.getInt( "ToggleButton.tab.underlineHeight" );
|
tabUnderlineHeight = UIManager.getInt( "ToggleButton.tab.underlineHeight" );
|
||||||
tabUnderlineColor = UIManager.getColor( "ToggleButton.tab.underlineColor" );
|
tabUnderlineColor = UIManager.getColor( "ToggleButton.tab.underlineColor" );
|
||||||
tabDisabledUnderlineColor = UIManager.getColor( "ToggleButton.tab.disabledUnderlineColor" );
|
tabDisabledUnderlineColor = UIManager.getColor( "ToggleButton.tab.disabledUnderlineColor" );
|
||||||
@@ -185,30 +167,4 @@ public class FlatToggleButtonUI
|
|||||||
} else
|
} else
|
||||||
super.paintBackground( g, c );
|
super.paintBackground( g, c );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Color getBackground( JComponent c ) {
|
|
||||||
ButtonModel model = ((AbstractButton)c).getModel();
|
|
||||||
|
|
||||||
if( model.isSelected() ) {
|
|
||||||
// in toolbar use same colors for disabled and enabled because
|
|
||||||
// we assume that toolbar icon is shown disabled
|
|
||||||
boolean toolBarButton = isToolBarButton( c );
|
|
||||||
return buttonStateColor( c,
|
|
||||||
toolBarButton ? toolbarSelectedBackground : selectedBackground,
|
|
||||||
toolBarButton ? toolbarSelectedBackground : disabledSelectedBackground,
|
|
||||||
null, null,
|
|
||||||
toolBarButton ? toolbarPressedBackground : pressedBackground );
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.getBackground( c );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Color getForeground( JComponent c ) {
|
|
||||||
if( c.isEnabled() && ((AbstractButton)c).isSelected() && !isToolBarButton( c ) )
|
|
||||||
return selectedForeground;
|
|
||||||
|
|
||||||
return super.getForeground( c );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,12 +50,8 @@ public class FlatToolBarSeparatorUI
|
|||||||
|
|
||||||
private boolean defaults_initialized = false;
|
private boolean defaults_initialized = false;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatToolBarSeparatorUI.class, FlatToolBarSeparatorUI::new );
|
||||||
instance = new FlatToolBarSeparatorUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -52,12 +52,8 @@ public class FlatToolTipUI
|
|||||||
{
|
{
|
||||||
private static PropertyChangeListener sharedPropertyChangedListener;
|
private static PropertyChangeListener sharedPropertyChangedListener;
|
||||||
|
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatToolTipUI.class, FlatToolTipUI::new );
|
||||||
instance = new FlatToolTipUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -35,7 +35,10 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.awt.geom.Path2D;
|
import java.awt.geom.Path2D;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
import java.awt.geom.RoundRectangle2D;
|
import java.awt.geom.RoundRectangle2D;
|
||||||
|
import java.util.IdentityHashMap;
|
||||||
|
import java.util.WeakHashMap;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.LookAndFeel;
|
import javax.swing.LookAndFeel;
|
||||||
@@ -43,6 +46,7 @@ import javax.swing.SwingUtilities;
|
|||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import javax.swing.border.CompoundBorder;
|
import javax.swing.border.CompoundBorder;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
import javax.swing.plaf.UIResource;
|
import javax.swing.plaf.UIResource;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
import com.formdev.flatlaf.util.DerivedColor;
|
import com.formdev.flatlaf.util.DerivedColor;
|
||||||
@@ -59,6 +63,8 @@ public class FlatUIUtils
|
|||||||
{
|
{
|
||||||
public static final boolean MAC_USE_QUARTZ = Boolean.getBoolean( "apple.awt.graphics.UseQuartz" );
|
public static final boolean MAC_USE_QUARTZ = Boolean.getBoolean( "apple.awt.graphics.UseQuartz" );
|
||||||
|
|
||||||
|
private static WeakHashMap<LookAndFeel, IdentityHashMap<Object, ComponentUI>> sharedUIinstances = new WeakHashMap<>();
|
||||||
|
|
||||||
public static Rectangle addInsets( Rectangle r, Insets insets ) {
|
public static Rectangle addInsets( Rectangle r, Insets insets ) {
|
||||||
return new Rectangle(
|
return new Rectangle(
|
||||||
r.x - insets.left,
|
r.x - insets.left,
|
||||||
@@ -534,6 +540,19 @@ public class FlatUIUtils
|
|||||||
return explicitlySet;
|
return explicitlySet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a shared component UI for the given key and the current Laf.
|
||||||
|
* Each Laf instance has its own shared component UI instance.
|
||||||
|
* <p>
|
||||||
|
* This is for GUI builders that support Laf switching and
|
||||||
|
* may use multiple Laf instances at the same time.
|
||||||
|
*/
|
||||||
|
public static ComponentUI createSharedUI( Object key, Supplier<ComponentUI> newInstanceSupplier ) {
|
||||||
|
return sharedUIinstances
|
||||||
|
.computeIfAbsent( UIManager.getLookAndFeel(), k -> new IdentityHashMap<>() )
|
||||||
|
.computeIfAbsent( key, k -> newInstanceSupplier.get() );
|
||||||
|
}
|
||||||
|
|
||||||
//---- class HoverListener ------------------------------------------------
|
//---- class HoverListener ------------------------------------------------
|
||||||
|
|
||||||
public static class HoverListener
|
public static class HoverListener
|
||||||
|
|||||||
@@ -38,12 +38,8 @@ import javax.swing.plaf.basic.BasicViewportUI;
|
|||||||
public class FlatViewportUI
|
public class FlatViewportUI
|
||||||
extends BasicViewportUI
|
extends BasicViewportUI
|
||||||
{
|
{
|
||||||
private static ComponentUI instance;
|
|
||||||
|
|
||||||
public static ComponentUI createUI( JComponent c ) {
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
if( instance == null )
|
return FlatUIUtils.createSharedUI( FlatViewportUI.class, FlatViewportUI::new );
|
||||||
instance = new FlatViewportUI();
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -17,11 +17,13 @@
|
|||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
import static java.awt.Cursor.*;
|
import static java.awt.Cursor.*;
|
||||||
|
import static javax.swing.SwingConstants.*;
|
||||||
import java.awt.Container;
|
import java.awt.Container;
|
||||||
import java.awt.Dialog;
|
import java.awt.Dialog;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Insets;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
@@ -34,54 +36,59 @@ import java.awt.event.WindowEvent;
|
|||||||
import java.awt.event.WindowStateListener;
|
import java.awt.event.WindowStateListener;
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
import javax.swing.DesktopManager;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JInternalFrame;
|
||||||
import javax.swing.JLayeredPane;
|
import javax.swing.JLayeredPane;
|
||||||
import javax.swing.JRootPane;
|
import javax.swing.JRootPane;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resizes frames and dialogs.
|
* Resizes frames, dialogs or internal frames.
|
||||||
|
* <p>
|
||||||
|
* Could also be used to implement resize support for any Swing component
|
||||||
|
* by creating a new subclass.
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatWindowResizer
|
public abstract class FlatWindowResizer
|
||||||
implements PropertyChangeListener, WindowStateListener, ComponentListener
|
implements PropertyChangeListener, ComponentListener
|
||||||
{
|
{
|
||||||
protected final static Integer WINDOW_RESIZER_LAYER = JLayeredPane.DRAG_LAYER + 1;
|
protected final static Integer WINDOW_RESIZER_LAYER = JLayeredPane.DRAG_LAYER + 1;
|
||||||
|
|
||||||
protected final JRootPane rootPane;
|
protected final JComponent resizeComp;
|
||||||
|
|
||||||
protected final int borderDragThickness = FlatUIUtils.getUIInt( "RootPane.borderDragThickness", 5 );
|
protected final int borderDragThickness = FlatUIUtils.getUIInt( "RootPane.borderDragThickness", 5 );
|
||||||
protected final int cornerDragWidth = FlatUIUtils.getUIInt( "RootPane.cornerDragWidth", 16 );
|
protected final int cornerDragWidth = FlatUIUtils.getUIInt( "RootPane.cornerDragWidth", 16 );
|
||||||
protected final boolean honorFrameMinimumSizeOnResize = UIManager.getBoolean( "RootPane.honorFrameMinimumSizeOnResize" );
|
protected final boolean honorFrameMinimumSizeOnResize = UIManager.getBoolean( "RootPane.honorFrameMinimumSizeOnResize" );
|
||||||
protected final boolean honorDialogMinimumSizeOnResize = UIManager.getBoolean( "RootPane.honorDialogMinimumSizeOnResize" );
|
protected final boolean honorDialogMinimumSizeOnResize = UIManager.getBoolean( "RootPane.honorDialogMinimumSizeOnResize" );
|
||||||
|
|
||||||
protected final JComponent north;
|
protected final DragBorderComponent topDragComp;
|
||||||
protected final JComponent south;
|
protected final DragBorderComponent bottomDragComp;
|
||||||
protected final JComponent west;
|
protected final DragBorderComponent leftDragComp;
|
||||||
protected final JComponent east;
|
protected final DragBorderComponent rightDragComp;
|
||||||
|
|
||||||
protected Window window;
|
protected FlatWindowResizer( JComponent resizeComp ) {
|
||||||
|
this.resizeComp = resizeComp;
|
||||||
|
|
||||||
public FlatWindowResizer( JRootPane rootPane ) {
|
topDragComp = createDragBorderComponent( NW_RESIZE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR );
|
||||||
this.rootPane = rootPane;
|
bottomDragComp = createDragBorderComponent( SW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR );
|
||||||
|
leftDragComp = createDragBorderComponent( NW_RESIZE_CURSOR, W_RESIZE_CURSOR, SW_RESIZE_CURSOR );
|
||||||
|
rightDragComp = createDragBorderComponent( NE_RESIZE_CURSOR, E_RESIZE_CURSOR, SE_RESIZE_CURSOR );
|
||||||
|
|
||||||
north = createDragBorderComponent( NW_RESIZE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR );
|
Container cont = (resizeComp instanceof JRootPane) ? ((JRootPane)resizeComp).getLayeredPane() : resizeComp;
|
||||||
south = createDragBorderComponent( SW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR );
|
Object cons = (cont instanceof JLayeredPane) ? WINDOW_RESIZER_LAYER : null;
|
||||||
west = createDragBorderComponent( NW_RESIZE_CURSOR, W_RESIZE_CURSOR, SW_RESIZE_CURSOR );
|
cont.add( topDragComp, cons, 0 );
|
||||||
east = createDragBorderComponent( NE_RESIZE_CURSOR, E_RESIZE_CURSOR, SE_RESIZE_CURSOR );
|
cont.add( bottomDragComp, cons, 1 );
|
||||||
|
cont.add( leftDragComp, cons, 2 );
|
||||||
|
cont.add( rightDragComp, cons, 3 );
|
||||||
|
|
||||||
JLayeredPane layeredPane = rootPane.getLayeredPane();
|
resizeComp.addComponentListener( this );
|
||||||
layeredPane.add( north, WINDOW_RESIZER_LAYER );
|
resizeComp.addPropertyChangeListener( "ancestor", this );
|
||||||
layeredPane.add( south, WINDOW_RESIZER_LAYER );
|
|
||||||
layeredPane.add( west, WINDOW_RESIZER_LAYER );
|
|
||||||
layeredPane.add( east, WINDOW_RESIZER_LAYER );
|
|
||||||
|
|
||||||
rootPane.addComponentListener( this );
|
if( resizeComp.isDisplayable() )
|
||||||
rootPane.addPropertyChangeListener( "ancestor", this );
|
|
||||||
|
|
||||||
if( rootPane.isDisplayable() )
|
|
||||||
addNotify();
|
addNotify();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,85 +99,96 @@ public class FlatWindowResizer
|
|||||||
public void uninstall() {
|
public void uninstall() {
|
||||||
removeNotify();
|
removeNotify();
|
||||||
|
|
||||||
rootPane.removeComponentListener( this );
|
resizeComp.removeComponentListener( this );
|
||||||
rootPane.removePropertyChangeListener( "ancestor", this );
|
resizeComp.removePropertyChangeListener( "ancestor", this );
|
||||||
|
|
||||||
JLayeredPane layeredPane = rootPane.getLayeredPane();
|
Container cont = topDragComp.getParent();
|
||||||
layeredPane.remove( north );
|
cont.remove( topDragComp );
|
||||||
layeredPane.remove( south );
|
cont.remove( bottomDragComp );
|
||||||
layeredPane.remove( west );
|
cont.remove( leftDragComp );
|
||||||
layeredPane.remove( east );
|
cont.remove( rightDragComp );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void doLayout() {
|
public void doLayout() {
|
||||||
if( !north.isVisible() )
|
if( !topDragComp.isVisible() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int x = 0;
|
int x = 0;
|
||||||
int y = 0;
|
int y = 0;
|
||||||
int width = rootPane.getWidth();
|
int width = resizeComp.getWidth();
|
||||||
int height = rootPane.getHeight();
|
int height = resizeComp.getHeight();
|
||||||
if( width == 0 || height == 0 )
|
if( width == 0 || height == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Insets resizeInsets = getResizeInsets();
|
||||||
int thickness = UIScale.scale( borderDragThickness );
|
int thickness = UIScale.scale( borderDragThickness );
|
||||||
int y2 = y + thickness;
|
int topThickness = Math.max( resizeInsets.top, thickness );
|
||||||
int height2 = height - (thickness * 2);
|
int bottomThickness = Math.max( resizeInsets.bottom, thickness );
|
||||||
|
int leftThickness = Math.max( resizeInsets.left, thickness );
|
||||||
|
int rightThickness = Math.max( resizeInsets.right, thickness );
|
||||||
|
int y2 = y + topThickness;
|
||||||
|
int height2 = height - topThickness - bottomThickness;
|
||||||
|
|
||||||
north.setBounds( x, y, width, thickness );
|
// set bounds of drag components
|
||||||
south.setBounds( x, y + height - thickness, width, thickness );
|
topDragComp.setBounds( x, y, width, topThickness );
|
||||||
west.setBounds( x, y2, thickness, height2 );
|
bottomDragComp.setBounds( x, y + height - bottomThickness, width, bottomThickness );
|
||||||
east.setBounds( x + width - thickness, y2, thickness, height2 );
|
leftDragComp.setBounds( x, y2, leftThickness, height2 );
|
||||||
|
rightDragComp.setBounds( x + width - rightThickness, y2, rightThickness, height2 );
|
||||||
|
|
||||||
|
// set corner drag widths
|
||||||
|
int cornerDelta = UIScale.scale( cornerDragWidth - borderDragThickness );
|
||||||
|
topDragComp.setCornerDragWidths( leftThickness + cornerDelta, rightThickness + cornerDelta );
|
||||||
|
bottomDragComp.setCornerDragWidths( leftThickness + cornerDelta, rightThickness + cornerDelta );
|
||||||
|
leftDragComp.setCornerDragWidths( cornerDelta, cornerDelta );
|
||||||
|
rightDragComp.setCornerDragWidths( cornerDelta, cornerDelta );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Insets getResizeInsets() {
|
||||||
|
return new Insets( 0, 0, 0, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addNotify() {
|
protected void addNotify() {
|
||||||
Container parent = rootPane.getParent();
|
|
||||||
window = (parent instanceof Window) ? (Window) parent : null;
|
|
||||||
if( window instanceof Frame ) {
|
|
||||||
window.addPropertyChangeListener( "resizable", this );
|
|
||||||
window.addWindowStateListener( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void removeNotify() {
|
protected void removeNotify() {
|
||||||
if( window instanceof Frame ) {
|
|
||||||
window.removePropertyChangeListener( "resizable", this );
|
|
||||||
window.removeWindowStateListener( this );
|
|
||||||
}
|
|
||||||
window = null;
|
|
||||||
|
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateVisibility() {
|
protected void updateVisibility() {
|
||||||
boolean visible = isWindowResizable();
|
boolean visible = isWindowResizable();
|
||||||
if( visible == north.isVisible() )
|
if( visible == topDragComp.isVisible() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
north.setVisible( visible );
|
topDragComp.setVisible( visible );
|
||||||
south.setVisible( visible );
|
bottomDragComp.setVisible( visible );
|
||||||
west.setVisible( visible );
|
leftDragComp.setVisible( visible );
|
||||||
|
|
||||||
// The east component is not hidden, instead its bounds are set to 0,0,1,1 and
|
// The east component is not hidden, instead its bounds are set to 0,0,1,1 and
|
||||||
// it is disabled. This is necessary so that DragBorderComponent.paintComponent() is invoked.
|
// it is disabled. This is necessary so that DragBorderComponent.paintComponent() is invoked.
|
||||||
east.setEnabled( visible );
|
rightDragComp.setEnabled( visible );
|
||||||
if( visible ) {
|
if( visible ) {
|
||||||
east.setVisible( true ); // necessary because it is initially invisible
|
rightDragComp.setVisible( true ); // necessary because it is initially invisible
|
||||||
doLayout();
|
doLayout();
|
||||||
} else
|
} else
|
||||||
east.setBounds( 0, 0, 1, 1 );
|
rightDragComp.setBounds( 0, 0, 1, 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isWindowResizable() {
|
boolean isDialog() {
|
||||||
if( window instanceof Frame )
|
|
||||||
return ((Frame)window).isResizable() && (((Frame)window).getExtendedState() & Frame.MAXIMIZED_BOTH) == 0;
|
|
||||||
if( window instanceof Dialog )
|
|
||||||
return ((Dialog)window).isResizable();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected abstract boolean isWindowResizable();
|
||||||
|
protected abstract Rectangle getWindowBounds();
|
||||||
|
protected abstract void setWindowBounds( Rectangle r );
|
||||||
|
protected abstract boolean honorMinimumSizeOnResize();
|
||||||
|
protected abstract Dimension getWindowMinimumSize();
|
||||||
|
|
||||||
|
protected void beginResizing( int direction ) {}
|
||||||
|
protected void endResizing() {}
|
||||||
|
|
||||||
|
//---- interface PropertyChangeListener ----
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void propertyChange( PropertyChangeEvent e ) {
|
public void propertyChange( PropertyChangeEvent e ) {
|
||||||
switch( e.getPropertyName() ) {
|
switch( e.getPropertyName() ) {
|
||||||
@@ -187,10 +205,7 @@ public class FlatWindowResizer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
//---- interface ComponentListener ----
|
||||||
public void windowStateChanged( WindowEvent e ) {
|
|
||||||
updateVisibility();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void componentResized( ComponentEvent e ) {
|
public void componentResized( ComponentEvent e ) {
|
||||||
@@ -201,6 +216,163 @@ public class FlatWindowResizer
|
|||||||
@Override public void componentShown( ComponentEvent e ) {}
|
@Override public void componentShown( ComponentEvent e ) {}
|
||||||
@Override public void componentHidden( ComponentEvent e ) {}
|
@Override public void componentHidden( ComponentEvent e ) {}
|
||||||
|
|
||||||
|
//---- class WindowResizer ------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resizes frames and dialogs.
|
||||||
|
*/
|
||||||
|
public static class WindowResizer
|
||||||
|
extends FlatWindowResizer
|
||||||
|
implements WindowStateListener
|
||||||
|
{
|
||||||
|
protected Window window;
|
||||||
|
|
||||||
|
public WindowResizer( JRootPane rootPane ) {
|
||||||
|
super( rootPane );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addNotify() {
|
||||||
|
Container parent = resizeComp.getParent();
|
||||||
|
window = (parent instanceof Window) ? (Window) parent : null;
|
||||||
|
if( window instanceof Frame ) {
|
||||||
|
window.addPropertyChangeListener( "resizable", this );
|
||||||
|
window.addWindowStateListener( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
super.addNotify();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void removeNotify() {
|
||||||
|
if( window instanceof Frame ) {
|
||||||
|
window.removePropertyChangeListener( "resizable", this );
|
||||||
|
window.removeWindowStateListener( this );
|
||||||
|
}
|
||||||
|
window = null;
|
||||||
|
|
||||||
|
super.removeNotify();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isWindowResizable() {
|
||||||
|
if( window instanceof Frame )
|
||||||
|
return ((Frame)window).isResizable() && (((Frame)window).getExtendedState() & Frame.MAXIMIZED_BOTH) == 0;
|
||||||
|
if( window instanceof Dialog )
|
||||||
|
return ((Dialog)window).isResizable();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Rectangle getWindowBounds() {
|
||||||
|
return window.getBounds();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setWindowBounds( Rectangle r ) {
|
||||||
|
window.setBounds( r );
|
||||||
|
|
||||||
|
// immediately layout drag border components
|
||||||
|
doLayout();
|
||||||
|
|
||||||
|
if( Toolkit.getDefaultToolkit().isDynamicLayoutActive() ) {
|
||||||
|
window.validate();
|
||||||
|
resizeComp.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean honorMinimumSizeOnResize() {
|
||||||
|
return
|
||||||
|
(honorFrameMinimumSizeOnResize && window instanceof Frame) ||
|
||||||
|
(honorDialogMinimumSizeOnResize && window instanceof Dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Dimension getWindowMinimumSize() {
|
||||||
|
return window.getMinimumSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
boolean isDialog() {
|
||||||
|
return window instanceof Dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void windowStateChanged( WindowEvent e ) {
|
||||||
|
updateVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class InternalFrameResizer -----------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resizes internal frames.
|
||||||
|
*/
|
||||||
|
public static class InternalFrameResizer
|
||||||
|
extends FlatWindowResizer
|
||||||
|
{
|
||||||
|
protected final Supplier<DesktopManager> desktopManager;
|
||||||
|
|
||||||
|
public InternalFrameResizer( JInternalFrame frame, Supplier<DesktopManager> desktopManager ) {
|
||||||
|
super( frame );
|
||||||
|
this.desktopManager = desktopManager;
|
||||||
|
|
||||||
|
frame.addPropertyChangeListener( "resizable", this );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uninstall() {
|
||||||
|
getFrame().removePropertyChangeListener( "resizable", this );
|
||||||
|
|
||||||
|
super.uninstall();
|
||||||
|
}
|
||||||
|
|
||||||
|
private JInternalFrame getFrame() {
|
||||||
|
return (JInternalFrame) resizeComp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Insets getResizeInsets() {
|
||||||
|
return getFrame().getInsets();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isWindowResizable() {
|
||||||
|
return getFrame().isResizable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Rectangle getWindowBounds() {
|
||||||
|
return getFrame().getBounds();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setWindowBounds( Rectangle r ) {
|
||||||
|
desktopManager.get().resizeFrame( getFrame(), r.x, r.y, r.width, r.height );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean honorMinimumSizeOnResize() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Dimension getWindowMinimumSize() {
|
||||||
|
return getFrame().getMinimumSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void beginResizing( int direction ) {
|
||||||
|
desktopManager.get().beginResizingFrame( getFrame(), direction );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void endResizing() {
|
||||||
|
desktopManager.get().endResizingFrame( getFrame() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---- class DragBorderComponent ------------------------------------------
|
//---- class DragBorderComponent ------------------------------------------
|
||||||
|
|
||||||
protected class DragBorderComponent
|
protected class DragBorderComponent
|
||||||
@@ -212,9 +384,15 @@ public class FlatWindowResizer
|
|||||||
private final int trailingResizeDir;
|
private final int trailingResizeDir;
|
||||||
|
|
||||||
private int resizeDir = -1;
|
private int resizeDir = -1;
|
||||||
private int dragStartMouseX;
|
|
||||||
private int dragStartMouseY;
|
private int leadingCornerDragWidth;
|
||||||
private Rectangle dragStartWindowBounds;
|
private int trailingCornerDragWidth;
|
||||||
|
|
||||||
|
// offsets of mouse position to window edges
|
||||||
|
private int dragLeftOffset;
|
||||||
|
private int dragRightOffset;
|
||||||
|
private int dragTopOffset;
|
||||||
|
private int dragBottomOffset;
|
||||||
|
|
||||||
protected DragBorderComponent( int leadingResizeDir, int centerResizeDir, int trailingResizeDir ) {
|
protected DragBorderComponent( int leadingResizeDir, int centerResizeDir, int trailingResizeDir ) {
|
||||||
this.leadingResizeDir = leadingResizeDir;
|
this.leadingResizeDir = leadingResizeDir;
|
||||||
@@ -228,6 +406,11 @@ public class FlatWindowResizer
|
|||||||
addMouseMotionListener( this );
|
addMouseMotionListener( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setCornerDragWidths( int leading, int trailing ) {
|
||||||
|
leadingCornerDragWidth = leading;
|
||||||
|
trailingCornerDragWidth = trailing;
|
||||||
|
}
|
||||||
|
|
||||||
protected void setResizeDir( int resizeDir ) {
|
protected void setResizeDir( int resizeDir ) {
|
||||||
if( this.resizeDir == resizeDir )
|
if( this.resizeDir == resizeDir )
|
||||||
return;
|
return;
|
||||||
@@ -247,12 +430,25 @@ public class FlatWindowResizer
|
|||||||
super.paintChildren( g );
|
super.paintChildren( g );
|
||||||
|
|
||||||
// this is necessary because Dialog.setResizable() does not fire events
|
// this is necessary because Dialog.setResizable() does not fire events
|
||||||
if( window instanceof Dialog )
|
if( isDialog() )
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
|
|
||||||
/*debug
|
/*debug
|
||||||
|
int width = getWidth();
|
||||||
|
int height = getHeight();
|
||||||
|
|
||||||
|
g.setColor( java.awt.Color.blue );
|
||||||
|
boolean topOrBottom = (centerResizeDir == N_RESIZE_CURSOR || centerResizeDir == S_RESIZE_CURSOR);
|
||||||
|
if( topOrBottom ) {
|
||||||
|
g.drawLine( leadingCornerDragWidth, 0, leadingCornerDragWidth, height );
|
||||||
|
g.drawLine( width - trailingCornerDragWidth, 0, width - trailingCornerDragWidth, height );
|
||||||
|
} else {
|
||||||
|
g.drawLine( 0, leadingCornerDragWidth, width, leadingCornerDragWidth );
|
||||||
|
g.drawLine( 0, height - trailingCornerDragWidth, width, height - trailingCornerDragWidth );
|
||||||
|
}
|
||||||
|
|
||||||
g.setColor( java.awt.Color.red );
|
g.setColor( java.awt.Color.red );
|
||||||
g.drawRect( 0, 0, getWidth() - 1, getHeight() - 1 );
|
g.drawRect( 0, 0, width - 1, height - 1 );
|
||||||
debug*/
|
debug*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,114 +458,116 @@ debug*/
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed( MouseEvent e ) {
|
public void mousePressed( MouseEvent e ) {
|
||||||
if( window == null )
|
if( !isWindowResizable() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dragStartMouseX = e.getXOnScreen();
|
int xOnScreen = e.getXOnScreen();
|
||||||
dragStartMouseY = e.getYOnScreen();
|
int yOnScreen = e.getYOnScreen();
|
||||||
dragStartWindowBounds = window.getBounds();
|
Rectangle windowBounds = getWindowBounds();
|
||||||
|
|
||||||
|
// compute offsets of mouse position to window edges
|
||||||
|
dragLeftOffset = xOnScreen - windowBounds.x;
|
||||||
|
dragTopOffset = yOnScreen - windowBounds.y;
|
||||||
|
dragRightOffset = windowBounds.x + windowBounds.width - xOnScreen;
|
||||||
|
dragBottomOffset = windowBounds.y + windowBounds.height - yOnScreen;
|
||||||
|
|
||||||
|
int direction = 0;
|
||||||
|
switch( resizeDir ) {
|
||||||
|
case N_RESIZE_CURSOR: direction = NORTH; break;
|
||||||
|
case S_RESIZE_CURSOR: direction = SOUTH; break;
|
||||||
|
case W_RESIZE_CURSOR: direction = WEST; break;
|
||||||
|
case E_RESIZE_CURSOR: direction = EAST; break;
|
||||||
|
case NW_RESIZE_CURSOR: direction = NORTH_WEST; break;
|
||||||
|
case NE_RESIZE_CURSOR: direction = NORTH_EAST; break;
|
||||||
|
case SW_RESIZE_CURSOR: direction = SOUTH_WEST; break;
|
||||||
|
case SE_RESIZE_CURSOR: direction = SOUTH_EAST; break;
|
||||||
|
}
|
||||||
|
beginResizing( direction );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseReleased( MouseEvent e ) {
|
public void mouseReleased( MouseEvent e ) {
|
||||||
dragStartWindowBounds = null;
|
if( !isWindowResizable() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
dragLeftOffset = dragRightOffset = dragTopOffset = dragBottomOffset = 0;
|
||||||
|
|
||||||
|
endResizing();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public void mouseEntered( MouseEvent e ) {}
|
||||||
public void mouseEntered( MouseEvent e ) {
|
@Override public void mouseExited( MouseEvent e ) {}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mouseExited( MouseEvent e ) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseMoved( MouseEvent e ) {
|
public void mouseMoved( MouseEvent e ) {
|
||||||
boolean topBottom = (centerResizeDir == N_RESIZE_CURSOR || centerResizeDir == S_RESIZE_CURSOR);
|
boolean topOrBottom = (centerResizeDir == N_RESIZE_CURSOR || centerResizeDir == S_RESIZE_CURSOR);
|
||||||
int xy = topBottom ? e.getX() : e.getY();
|
int xy = topOrBottom ? e.getX() : e.getY();
|
||||||
int wh = topBottom ? getWidth() : getHeight();
|
int wh = topOrBottom ? getWidth() : getHeight();
|
||||||
int cornerWH = UIScale.scale( cornerDragWidth - (topBottom ? 0 : borderDragThickness) );
|
|
||||||
|
|
||||||
setResizeDir( xy <= cornerWH
|
setResizeDir( xy <= leadingCornerDragWidth
|
||||||
? leadingResizeDir
|
? leadingResizeDir
|
||||||
: (xy >= wh - cornerWH
|
: (xy >= wh - trailingCornerDragWidth
|
||||||
? trailingResizeDir
|
? trailingResizeDir
|
||||||
: centerResizeDir) );
|
: centerResizeDir) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDragged( MouseEvent e ) {
|
public void mouseDragged( MouseEvent e ) {
|
||||||
if( dragStartWindowBounds == null )
|
|
||||||
return;
|
|
||||||
|
|
||||||
if( !isWindowResizable() )
|
if( !isWindowResizable() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int mouseDeltaX = e.getXOnScreen() - dragStartMouseX;
|
int xOnScreen = e.getXOnScreen();
|
||||||
int mouseDeltaY = e.getYOnScreen() - dragStartMouseY;
|
int yOnScreen = e.getYOnScreen();
|
||||||
|
|
||||||
int deltaX = 0;
|
// Get current window bounds and compute new bounds based them.
|
||||||
int deltaY = 0;
|
// This is necessary because window manager may alter window bounds while resizing.
|
||||||
int deltaWidth = 0;
|
// E.g. when having two monitors with different scale factors and resizing
|
||||||
int deltaHeight = 0;
|
// a window on first screen to the second screen, then the window manager may
|
||||||
|
// decide at some point that the window should be only on second screen
|
||||||
// north
|
// and adjusts its bounds.
|
||||||
if( resizeDir == N_RESIZE_CURSOR || resizeDir == NW_RESIZE_CURSOR || resizeDir == NE_RESIZE_CURSOR ) {
|
Rectangle oldBounds = getWindowBounds();
|
||||||
deltaY = mouseDeltaY;
|
Rectangle newBounds = new Rectangle( oldBounds );
|
||||||
deltaHeight = -mouseDeltaY;
|
|
||||||
}
|
|
||||||
|
|
||||||
// south
|
|
||||||
if( resizeDir == S_RESIZE_CURSOR || resizeDir == SW_RESIZE_CURSOR || resizeDir == SE_RESIZE_CURSOR )
|
|
||||||
deltaHeight = mouseDeltaY;
|
|
||||||
|
|
||||||
// west
|
|
||||||
if( resizeDir == W_RESIZE_CURSOR || resizeDir == NW_RESIZE_CURSOR || resizeDir == SW_RESIZE_CURSOR ) {
|
|
||||||
deltaX = mouseDeltaX;
|
|
||||||
deltaWidth = -mouseDeltaX;
|
|
||||||
}
|
|
||||||
|
|
||||||
// east
|
|
||||||
if( resizeDir == E_RESIZE_CURSOR || resizeDir == NE_RESIZE_CURSOR || resizeDir == SE_RESIZE_CURSOR )
|
|
||||||
deltaWidth = mouseDeltaX;
|
|
||||||
|
|
||||||
// compute new window bounds
|
// compute new window bounds
|
||||||
Rectangle newBounds = new Rectangle( dragStartWindowBounds );
|
|
||||||
newBounds.x += deltaX;
|
// top
|
||||||
newBounds.y += deltaY;
|
if( resizeDir == N_RESIZE_CURSOR || resizeDir == NW_RESIZE_CURSOR || resizeDir == NE_RESIZE_CURSOR ) {
|
||||||
newBounds.width += deltaWidth;
|
newBounds.y = yOnScreen - dragTopOffset;
|
||||||
newBounds.height += deltaHeight;
|
newBounds.height += (oldBounds.y - newBounds.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
// bottom
|
||||||
|
if( resizeDir == S_RESIZE_CURSOR || resizeDir == SW_RESIZE_CURSOR || resizeDir == SE_RESIZE_CURSOR )
|
||||||
|
newBounds.height = (yOnScreen + dragBottomOffset) - newBounds.y;
|
||||||
|
|
||||||
|
// left
|
||||||
|
if( resizeDir == W_RESIZE_CURSOR || resizeDir == NW_RESIZE_CURSOR || resizeDir == SW_RESIZE_CURSOR ) {
|
||||||
|
newBounds.x = xOnScreen - dragLeftOffset;
|
||||||
|
newBounds.width += (oldBounds.x - newBounds.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// right
|
||||||
|
if( resizeDir == E_RESIZE_CURSOR || resizeDir == NE_RESIZE_CURSOR || resizeDir == SE_RESIZE_CURSOR )
|
||||||
|
newBounds.width = (xOnScreen + dragRightOffset) - newBounds.x;
|
||||||
|
|
||||||
// apply minimum window size
|
// apply minimum window size
|
||||||
boolean honorMinimumSizeOnResize =
|
Dimension minimumSize = honorMinimumSizeOnResize() ? getWindowMinimumSize() : null;
|
||||||
(honorFrameMinimumSizeOnResize && window instanceof Frame) ||
|
|
||||||
(honorDialogMinimumSizeOnResize && window instanceof Dialog);
|
|
||||||
Dimension minimumSize = honorMinimumSizeOnResize ? window.getMinimumSize() : null;
|
|
||||||
if( minimumSize == null )
|
if( minimumSize == null )
|
||||||
minimumSize = UIScale.scale( new Dimension( 150, 50 ) );
|
minimumSize = UIScale.scale( new Dimension( 150, 50 ) );
|
||||||
if( newBounds.width < minimumSize.width ) {
|
if( newBounds.width < minimumSize.width ) {
|
||||||
if( deltaX != 0 )
|
if( newBounds.x != oldBounds.x )
|
||||||
newBounds.x -= (minimumSize.width - newBounds.width);
|
newBounds.x -= (minimumSize.width - newBounds.width);
|
||||||
newBounds.width = minimumSize.width;
|
newBounds.width = minimumSize.width;
|
||||||
}
|
}
|
||||||
if( newBounds.height < minimumSize.height ) {
|
if( newBounds.height < minimumSize.height ) {
|
||||||
if( deltaY != 0 )
|
if( newBounds.y != oldBounds.y )
|
||||||
newBounds.y -= (minimumSize.height - newBounds.height);
|
newBounds.y -= (minimumSize.height - newBounds.height);
|
||||||
newBounds.height = minimumSize.height;
|
newBounds.height = minimumSize.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set window bounds
|
// set window bounds
|
||||||
if( !newBounds.equals( dragStartWindowBounds ) ) {
|
if( !newBounds.equals( oldBounds ) )
|
||||||
window.setBounds( newBounds );
|
setWindowBounds( newBounds );
|
||||||
|
|
||||||
// immediately layout drag border components
|
|
||||||
FlatWindowResizer.this.doLayout();
|
|
||||||
|
|
||||||
if( Toolkit.getDefaultToolkit().isDynamicLayoutActive() ) {
|
|
||||||
window.validate();
|
|
||||||
rootPane.repaint();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.util;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import javax.swing.border.EmptyBorder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty border that scales insets.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class ScaledEmptyBorder
|
||||||
|
extends EmptyBorder
|
||||||
|
{
|
||||||
|
public ScaledEmptyBorder( int top, int left, int bottom, int right ) {
|
||||||
|
super( top, left, bottom, right );
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScaledEmptyBorder( Insets insets ) {
|
||||||
|
super( insets );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets() {
|
||||||
|
return new Insets( scale( top ), scale( left ), scale( bottom ), scale( right ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Insets getBorderInsets( Component c, Insets insets ) {
|
||||||
|
insets.left = scale( left );
|
||||||
|
insets.top = scale( top );
|
||||||
|
insets.right = scale( right );
|
||||||
|
insets.bottom = scale( bottom );
|
||||||
|
return insets;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,6 +22,7 @@ import java.awt.Graphics2D;
|
|||||||
import java.awt.GraphicsConfiguration;
|
import java.awt.GraphicsConfiguration;
|
||||||
import java.awt.GraphicsEnvironment;
|
import java.awt.GraphicsEnvironment;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.beans.PropertyChangeSupport;
|
import java.beans.PropertyChangeSupport;
|
||||||
@@ -162,6 +163,13 @@ public class UIScale
|
|||||||
if( !isUserScalingEnabled() )
|
if( !isUserScalingEnabled() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// apply custom scale factor specified in system property "flatlaf.uiScale"
|
||||||
|
float customScaleFactor = getCustomScaleFactor();
|
||||||
|
if( customScaleFactor > 0 ) {
|
||||||
|
setUserScaleFactor( customScaleFactor );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// use font size to calculate scale factor (instead of DPI)
|
// use font size to calculate scale factor (instead of DPI)
|
||||||
// because even if we are on a HiDPI display it is not sure
|
// because even if we are on a HiDPI display it is not sure
|
||||||
// that a larger font size is set by the current LaF
|
// that a larger font size is set by the current LaF
|
||||||
@@ -170,7 +178,45 @@ public class UIScale
|
|||||||
if( font == null )
|
if( font == null )
|
||||||
font = UIManager.getFont( "Label.font" );
|
font = UIManager.getFont( "Label.font" );
|
||||||
|
|
||||||
setUserScaleFactor( computeScaleFactor( font ) );
|
float newScaleFactor;
|
||||||
|
if( SystemInfo.isWindows ) {
|
||||||
|
// Special handling for Windows to be compatible with OS scaling,
|
||||||
|
// which distinguish between "screen scaling" and "text scaling".
|
||||||
|
// - Windows "screen scaling" scales everything (text, icon, gaps, etc)
|
||||||
|
// and may have different scaling factors for each screen.
|
||||||
|
// - Windows "text scaling" increases only the font size, but on all screens.
|
||||||
|
//
|
||||||
|
// Both can be changed by the user in the Windows 10 Settings:
|
||||||
|
// - Settings > Display > Scale and layout
|
||||||
|
// - Settings > Ease of Access > Display > Make text bigger (100% - 225%)
|
||||||
|
if( font instanceof UIResource ) {
|
||||||
|
if( isSystemScalingEnabled() ) {
|
||||||
|
// Do not apply own scaling if the JRE scales using Windows screen scale factor.
|
||||||
|
// If user increases font size in Windows 10 settings, desktop property
|
||||||
|
// "win.messagebox.font" is changed and FlatLaf uses the larger font.
|
||||||
|
newScaleFactor = 1;
|
||||||
|
} else {
|
||||||
|
// If the JRE does not scale (Java 8), the size of the UI font
|
||||||
|
// (usually from desktop property "win.messagebox.font")
|
||||||
|
// combines the Windows screen and text scale factors.
|
||||||
|
// But the font in desktop property "win.defaultGUI.font" is only
|
||||||
|
// scaled with the Windows screen scale factor. So use it to compute
|
||||||
|
// our scale factor that is equal to Windows screen scale factor.
|
||||||
|
Font winFont = (Font) Toolkit.getDefaultToolkit().getDesktopProperty( "win.defaultGUI.font" );
|
||||||
|
newScaleFactor = computeScaleFactor( (winFont != null) ? winFont : font );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// If font was explicitly set from outside (is not a UIResource)
|
||||||
|
// use it to compute scale factor. This allows applications to
|
||||||
|
// use custom fonts (e.g. that the user can change in UI) and
|
||||||
|
// get scaling if a larger font size is used.
|
||||||
|
// E.g. FlatLaf Demo supports increasing font size in "Font" menu and UI scales.
|
||||||
|
newScaleFactor = computeScaleFactor( font );
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
newScaleFactor = computeScaleFactor( font );
|
||||||
|
|
||||||
|
setUserScaleFactor( newScaleFactor );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float computeScaleFactor( Font font ) {
|
private static float computeScaleFactor( Font font ) {
|
||||||
@@ -206,8 +252,7 @@ public class UIScale
|
|||||||
if( !isUserScalingEnabled() )
|
if( !isUserScalingEnabled() )
|
||||||
return font;
|
return font;
|
||||||
|
|
||||||
String uiScale = System.getProperty( FlatSystemProperties.UI_SCALE );
|
float scaleFactor = getCustomScaleFactor();
|
||||||
float scaleFactor = parseScaleFactor( uiScale );
|
|
||||||
if( scaleFactor <= 0 )
|
if( scaleFactor <= 0 )
|
||||||
return font;
|
return font;
|
||||||
|
|
||||||
@@ -219,6 +264,13 @@ public class UIScale
|
|||||||
return new FontUIResource( font.deriveFont( (float) newFontSize ) );
|
return new FontUIResource( font.deriveFont( (float) newFontSize ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get custom scale factor specified in system property "flatlaf.uiScale".
|
||||||
|
*/
|
||||||
|
private static float getCustomScaleFactor() {
|
||||||
|
return parseScaleFactor( System.getProperty( FlatSystemProperties.UI_SCALE ) );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Similar to sun.java2d.SunGraphicsEnvironment.getScaleFactor(String)
|
* Similar to sun.java2d.SunGraphicsEnvironment.getScaleFactor(String)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,18 +21,19 @@
|
|||||||
#---- variables ----
|
#---- variables ----
|
||||||
|
|
||||||
@background=#3c3f41
|
@background=#3c3f41
|
||||||
@foreground=#bbbbbb
|
@foreground=#bbb
|
||||||
@selectionBackground=#4B6EAF
|
@selectionBackground=#4B6EAF
|
||||||
@selectionForeground=@foreground
|
@selectionForeground=@foreground
|
||||||
@selectionInactiveBackground=#0D293E
|
@selectionInactiveBackground=#0D293E
|
||||||
@selectionInactiveForeground=@foreground
|
@selectionInactiveForeground=@foreground
|
||||||
@disabledText=#777777
|
@disabledText=#888
|
||||||
@textComponentBackground=#45494A
|
@textComponentBackground=#45494A
|
||||||
@menuBackground=darken(@background,5%)
|
@menuBackground=darken(@background,5%)
|
||||||
@menuHoverBackground=lighten(@menuBackground,10%,derived)
|
@menuHoverBackground=lighten(@menuBackground,10%,derived)
|
||||||
@menuCheckBackground=lighten(@menuBackground,10%,derived)
|
@menuCheckBackground=darken(@selectionBackground,10%)
|
||||||
@menuCheckHoverBackground=lighten(@menuBackground,20%,derived)
|
@menuAcceleratorForeground=darken(@foreground,15%)
|
||||||
@cellFocusColor=#000000
|
@menuAcceleratorSelectionForeground=@selectionForeground
|
||||||
|
@cellFocusColor=#000
|
||||||
@icon=#adadad
|
@icon=#adadad
|
||||||
|
|
||||||
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
||||||
@@ -42,24 +43,6 @@
|
|||||||
@dropLineShortColor=lighten(List.selectionBackground,30%,lazy)
|
@dropLineShortColor=lighten(List.selectionBackground,30%,lazy)
|
||||||
|
|
||||||
|
|
||||||
#---- globals ----
|
|
||||||
|
|
||||||
*.background=@background
|
|
||||||
*.foreground=@foreground
|
|
||||||
*.textBackground=@background
|
|
||||||
*.textForeground=@foreground
|
|
||||||
*.caretForeground=@foreground
|
|
||||||
*.inactiveBackground=@background
|
|
||||||
*.inactiveForeground=@foreground
|
|
||||||
*.selectionBackground=@selectionBackground
|
|
||||||
*.selectionForeground=@selectionForeground
|
|
||||||
*.disabledBackground=@background
|
|
||||||
*.disabledForeground=@disabledText
|
|
||||||
*.disabledText=@disabledText
|
|
||||||
*.acceleratorForeground=darken(@foreground,15%)
|
|
||||||
*.acceleratorSelectionForeground=@selectionForeground
|
|
||||||
|
|
||||||
|
|
||||||
#---- system colors ----
|
#---- system colors ----
|
||||||
|
|
||||||
activeCaption=#434E60
|
activeCaption=#434E60
|
||||||
@@ -74,6 +57,9 @@ controlDkShadow=lighten($controlShadow,10%)
|
|||||||
Button.background=#4c5052
|
Button.background=#4c5052
|
||||||
Button.hoverBackground=lighten($Button.background,3%,derived)
|
Button.hoverBackground=lighten($Button.background,3%,derived)
|
||||||
Button.pressedBackground=lighten($Button.background,6%,derived)
|
Button.pressedBackground=lighten($Button.background,6%,derived)
|
||||||
|
Button.selectedBackground=lighten($Button.background,10%,derived)
|
||||||
|
Button.selectedForeground=@foreground
|
||||||
|
Button.disabledSelectedBackground=lighten($Button.background,3%,derived)
|
||||||
|
|
||||||
Button.borderColor=#5e6060
|
Button.borderColor=#5e6060
|
||||||
Button.disabledBorderColor=#5e6060
|
Button.disabledBorderColor=#5e6060
|
||||||
@@ -81,7 +67,7 @@ Button.focusedBorderColor=#466d94
|
|||||||
Button.hoverBorderColor=$Button.focusedBorderColor
|
Button.hoverBorderColor=$Button.focusedBorderColor
|
||||||
|
|
||||||
Button.default.background=#365880
|
Button.default.background=#365880
|
||||||
Button.default.foreground=#bbbbbb
|
Button.default.foreground=#bbb
|
||||||
Button.default.hoverBackground=lighten($Button.default.background,3%,derived)
|
Button.default.hoverBackground=lighten($Button.default.background,3%,derived)
|
||||||
Button.default.pressedBackground=lighten($Button.default.background,6%,derived)
|
Button.default.pressedBackground=lighten($Button.default.background,6%,derived)
|
||||||
Button.default.borderColor=#4c708c
|
Button.default.borderColor=#4c708c
|
||||||
@@ -92,6 +78,7 @@ Button.default.boldText=true
|
|||||||
|
|
||||||
Button.toolbar.hoverBackground=lighten($Button.background,1%,derived)
|
Button.toolbar.hoverBackground=lighten($Button.background,1%,derived)
|
||||||
Button.toolbar.pressedBackground=lighten($Button.background,4%,derived)
|
Button.toolbar.pressedBackground=lighten($Button.background,4%,derived)
|
||||||
|
Button.toolbar.selectedBackground=lighten($Button.background,7%,derived)
|
||||||
|
|
||||||
|
|
||||||
#---- CheckBox ----
|
#---- CheckBox ----
|
||||||
@@ -132,12 +119,10 @@ CheckBox.icon[filled].selectedPressedBackground=darken($CheckBox.icon[filled].se
|
|||||||
|
|
||||||
#---- ComboBox ----
|
#---- ComboBox ----
|
||||||
|
|
||||||
ComboBox.background=@textComponentBackground
|
|
||||||
ComboBox.buttonBackground=@textComponentBackground
|
|
||||||
ComboBox.buttonEditableBackground=#404445
|
ComboBox.buttonEditableBackground=#404445
|
||||||
ComboBox.buttonArrowColor=#9A9DA1
|
ComboBox.buttonArrowColor=#9A9DA1
|
||||||
ComboBox.buttonDisabledArrowColor=#585858
|
ComboBox.buttonDisabledArrowColor=#585858
|
||||||
ComboBox.buttonHoverArrowColor=#bbbbbb
|
ComboBox.buttonHoverArrowColor=#bbb
|
||||||
|
|
||||||
|
|
||||||
#---- Component ----
|
#---- Component ----
|
||||||
@@ -187,11 +172,6 @@ InternalFrame.activeDropShadowOpacity=0.5
|
|||||||
InternalFrame.inactiveDropShadowOpacity=0.75
|
InternalFrame.inactiveDropShadowOpacity=0.75
|
||||||
|
|
||||||
|
|
||||||
#---- List ----
|
|
||||||
|
|
||||||
List.background=@textComponentBackground
|
|
||||||
|
|
||||||
|
|
||||||
#---- Menu ----
|
#---- Menu ----
|
||||||
|
|
||||||
Menu.icon.arrowColor=#A7A7A7
|
Menu.icon.arrowColor=#A7A7A7
|
||||||
@@ -201,7 +181,6 @@ Menu.icon.disabledArrowColor=#606060
|
|||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.borderColor=#515151
|
MenuBar.borderColor=#515151
|
||||||
MenuBar.hoverBackground=@menuHoverBackground
|
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItemCheckBox ----
|
#---- MenuItemCheckBox ----
|
||||||
@@ -228,17 +207,12 @@ PopupMenu.borderColor=#5e5e5e
|
|||||||
|
|
||||||
#---- ProgressBar ----
|
#---- ProgressBar ----
|
||||||
|
|
||||||
ProgressBar.background=#555555
|
ProgressBar.background=#555
|
||||||
ProgressBar.foreground=#4A88C7
|
ProgressBar.foreground=#4A88C7
|
||||||
ProgressBar.selectionForeground=@foreground
|
ProgressBar.selectionForeground=@foreground
|
||||||
ProgressBar.selectionBackground=@foreground
|
ProgressBar.selectionBackground=@foreground
|
||||||
|
|
||||||
|
|
||||||
#---- RadioButton ----
|
|
||||||
|
|
||||||
RadioButton.icon[filled].centerDiameter=5
|
|
||||||
|
|
||||||
|
|
||||||
#---- RootPane ----
|
#---- RootPane ----
|
||||||
|
|
||||||
RootPane.activeBorderColor=darken(@background,7%,derived)
|
RootPane.activeBorderColor=darken(@background,7%,derived)
|
||||||
@@ -265,7 +239,7 @@ Separator.foreground=#515151
|
|||||||
|
|
||||||
Slider.trackColor=#646464
|
Slider.trackColor=#646464
|
||||||
Slider.thumbColor=#A6A6A6
|
Slider.thumbColor=#A6A6A6
|
||||||
Slider.tickColor=#888888
|
Slider.tickColor=#888
|
||||||
Slider.hoverColor=darken($Slider.thumbColor,15%,derived)
|
Slider.hoverColor=darken($Slider.thumbColor,15%,derived)
|
||||||
Slider.disabledForeground=#4c5052
|
Slider.disabledForeground=#4c5052
|
||||||
|
|
||||||
@@ -278,23 +252,20 @@ SplitPaneDivider.oneTouchHoverArrowColor=#7A7D81
|
|||||||
|
|
||||||
#---- TabbedPane ----
|
#---- TabbedPane ----
|
||||||
|
|
||||||
TabbedPane.disabledForeground=@disabledText
|
|
||||||
TabbedPane.underlineColor=#4A88C7
|
TabbedPane.underlineColor=#4A88C7
|
||||||
TabbedPane.disabledUnderlineColor=#7a7a7a
|
TabbedPane.disabledUnderlineColor=#7a7a7a
|
||||||
TabbedPane.hoverColor=#2e3133
|
TabbedPane.hoverColor=#2e3133
|
||||||
TabbedPane.focusColor=#3d4b5c
|
TabbedPane.focusColor=#3d4b5c
|
||||||
TabbedPane.contentAreaColor=#323232
|
TabbedPane.contentAreaColor=#646464
|
||||||
|
|
||||||
|
|
||||||
#---- Table ----
|
#---- Table ----
|
||||||
|
|
||||||
Table.background=@textComponentBackground
|
|
||||||
Table.gridColor=lighten($Table.background,3%)
|
Table.gridColor=lighten($Table.background,3%)
|
||||||
|
|
||||||
|
|
||||||
#---- TableHeader ----
|
#---- TableHeader ----
|
||||||
|
|
||||||
TableHeader.background=@textComponentBackground
|
|
||||||
TableHeader.separatorColor=lighten($TableHeader.background,10%)
|
TableHeader.separatorColor=lighten($TableHeader.background,10%)
|
||||||
TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
||||||
|
|
||||||
@@ -309,7 +280,6 @@ TitlePane.buttonPressedBackground=lighten($TitlePane.background,20%,derived)
|
|||||||
#---- ToggleButton ----
|
#---- ToggleButton ----
|
||||||
|
|
||||||
ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived)
|
ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived)
|
||||||
ToggleButton.selectedForeground=@foreground
|
|
||||||
ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived)
|
ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived)
|
||||||
|
|
||||||
ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived)
|
ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived)
|
||||||
@@ -323,5 +293,4 @@ ToolTip.background=#1e2123
|
|||||||
|
|
||||||
#---- Tree ----
|
#---- Tree ----
|
||||||
|
|
||||||
Tree.background=@textComponentBackground
|
|
||||||
Tree.hash=#505355
|
Tree.hash=#505355
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
Button.focusedBackground=null
|
Button.focusedBackground=null
|
||||||
|
|
||||||
Button.default.background=#4D8AC9
|
Button.default.background=#4D8AC9
|
||||||
Button.default.foreground=#FFFFFF
|
Button.default.foreground=#fff
|
||||||
Button.default.focusedBackground=null
|
Button.default.focusedBackground=null
|
||||||
Button.default.borderColor=#3D75B2
|
Button.default.borderColor=#3D75B2
|
||||||
Button.default.hoverBorderColor=#A9C9F5
|
Button.default.hoverBorderColor=#A9C9F5
|
||||||
|
|||||||
@@ -67,6 +67,22 @@ ViewportUI=com.formdev.flatlaf.ui.FlatViewportUI
|
|||||||
@menuItemMargin=3,6,3,6
|
@menuItemMargin=3,6,3,6
|
||||||
|
|
||||||
|
|
||||||
|
#---- globals ----
|
||||||
|
|
||||||
|
*.background=@background
|
||||||
|
*.foreground=@foreground
|
||||||
|
*.caretForeground=@foreground
|
||||||
|
*.inactiveBackground=@background
|
||||||
|
*.inactiveForeground=@disabledText
|
||||||
|
*.selectionBackground=@selectionBackground
|
||||||
|
*.selectionForeground=@selectionForeground
|
||||||
|
*.disabledBackground=@background
|
||||||
|
*.disabledForeground=@disabledText
|
||||||
|
*.disabledText=@disabledText
|
||||||
|
*.acceleratorForeground=@menuAcceleratorForeground
|
||||||
|
*.acceleratorSelectionForeground=@menuAcceleratorSelectionForeground
|
||||||
|
|
||||||
|
|
||||||
#---- system colors ----
|
#---- system colors ----
|
||||||
|
|
||||||
desktop=@textComponentBackground
|
desktop=@textComponentBackground
|
||||||
@@ -184,6 +200,8 @@ ComboBox.editorColumns=0
|
|||||||
ComboBox.maximumRowCount=15
|
ComboBox.maximumRowCount=15
|
||||||
[mac]ComboBox.showPopupOnNavigation=true
|
[mac]ComboBox.showPopupOnNavigation=true
|
||||||
ComboBox.buttonStyle=auto
|
ComboBox.buttonStyle=auto
|
||||||
|
ComboBox.background=@textComponentBackground
|
||||||
|
ComboBox.buttonBackground=@textComponentBackground
|
||||||
|
|
||||||
|
|
||||||
#---- Component ----
|
#---- Component ----
|
||||||
@@ -220,6 +238,7 @@ FileChooser.homeFolderIcon=com.formdev.flatlaf.icons.FlatFileChooserHomeFolderIc
|
|||||||
FileChooser.detailsViewIcon=com.formdev.flatlaf.icons.FlatFileChooserDetailsViewIcon
|
FileChooser.detailsViewIcon=com.formdev.flatlaf.icons.FlatFileChooserDetailsViewIcon
|
||||||
FileChooser.listViewIcon=com.formdev.flatlaf.icons.FlatFileChooserListViewIcon
|
FileChooser.listViewIcon=com.formdev.flatlaf.icons.FlatFileChooserListViewIcon
|
||||||
FileChooser.usesSingleFilePane=true
|
FileChooser.usesSingleFilePane=true
|
||||||
|
[win]FileChooser.useSystemExtensionHiding=true
|
||||||
|
|
||||||
|
|
||||||
#---- FileView ----
|
#---- FileView ----
|
||||||
@@ -288,6 +307,7 @@ List.cellFocusColor=@cellFocusColor
|
|||||||
List.cellNoFocusBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Default
|
List.cellNoFocusBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Default
|
||||||
List.focusCellHighlightBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Focused
|
List.focusCellHighlightBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Focused
|
||||||
List.focusSelectedCellHighlightBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Selected
|
List.focusSelectedCellHighlightBorder=com.formdev.flatlaf.ui.FlatListCellBorder$Selected
|
||||||
|
List.background=@textComponentBackground
|
||||||
List.selectionInactiveBackground=@selectionInactiveBackground
|
List.selectionInactiveBackground=@selectionInactiveBackground
|
||||||
List.selectionInactiveForeground=@selectionInactiveForeground
|
List.selectionInactiveForeground=@selectionInactiveForeground
|
||||||
List.dropCellBackground=@dropCellBackground
|
List.dropCellBackground=@dropCellBackground
|
||||||
@@ -313,6 +333,7 @@ Menu.background=@menuBackground
|
|||||||
|
|
||||||
MenuBar.border=com.formdev.flatlaf.ui.FlatMenuBarBorder
|
MenuBar.border=com.formdev.flatlaf.ui.FlatMenuBarBorder
|
||||||
MenuBar.background=@menuBackground
|
MenuBar.background=@menuBackground
|
||||||
|
MenuBar.hoverBackground=@menuHoverBackground
|
||||||
MenuBar.itemMargins=3,8,3,8
|
MenuBar.itemMargins=3,8,3,8
|
||||||
|
|
||||||
|
|
||||||
@@ -338,7 +359,7 @@ MenuItem.acceleratorDelimiter=-
|
|||||||
|
|
||||||
# for MenuItem.selectionType=underline
|
# for MenuItem.selectionType=underline
|
||||||
MenuItem.underlineSelectionBackground=@menuHoverBackground
|
MenuItem.underlineSelectionBackground=@menuHoverBackground
|
||||||
MenuItem.underlineSelectionCheckBackground=@menuCheckHoverBackground
|
MenuItem.underlineSelectionCheckBackground=@menuCheckBackground
|
||||||
MenuItem.underlineSelectionColor=$TabbedPane.underlineColor
|
MenuItem.underlineSelectionColor=$TabbedPane.underlineColor
|
||||||
MenuItem.underlineSelectionHeight=3
|
MenuItem.underlineSelectionHeight=3
|
||||||
|
|
||||||
@@ -373,6 +394,7 @@ PasswordField.margin=@textComponentMargin
|
|||||||
PasswordField.background=@textComponentBackground
|
PasswordField.background=@textComponentBackground
|
||||||
PasswordField.placeholderForeground=@disabledText
|
PasswordField.placeholderForeground=@disabledText
|
||||||
PasswordField.echoChar=\u2022
|
PasswordField.echoChar=\u2022
|
||||||
|
PasswordField.showCapsLock=true
|
||||||
PasswordField.capsLockIcon=com.formdev.flatlaf.icons.FlatCapsLockIcon
|
PasswordField.capsLockIcon=com.formdev.flatlaf.icons.FlatCapsLockIcon
|
||||||
|
|
||||||
|
|
||||||
@@ -411,6 +433,7 @@ ProgressBar.repaintInterval=15
|
|||||||
RadioButton.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
RadioButton.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
||||||
RadioButton.icon=com.formdev.flatlaf.icons.FlatRadioButtonIcon
|
RadioButton.icon=com.formdev.flatlaf.icons.FlatRadioButtonIcon
|
||||||
RadioButton.icon.centerDiameter=8
|
RadioButton.icon.centerDiameter=8
|
||||||
|
RadioButton.icon[filled].centerDiameter=5
|
||||||
RadioButton.margin=2,2,2,2
|
RadioButton.margin=2,2,2,2
|
||||||
RadioButton.iconTextGap=4
|
RadioButton.iconTextGap=4
|
||||||
RadioButton.rollover=true
|
RadioButton.rollover=true
|
||||||
@@ -516,12 +539,15 @@ SplitPaneDivider.oneTouchArrowColor=$ComboBox.buttonArrowColor
|
|||||||
TabbedPane.tabHeight=32
|
TabbedPane.tabHeight=32
|
||||||
TabbedPane.tabSelectionHeight=3
|
TabbedPane.tabSelectionHeight=3
|
||||||
TabbedPane.contentSeparatorHeight=1
|
TabbedPane.contentSeparatorHeight=1
|
||||||
|
TabbedPane.showTabSeparators=false
|
||||||
|
TabbedPane.tabSeparatorsFullHeight=false
|
||||||
TabbedPane.hasFullBorder=false
|
TabbedPane.hasFullBorder=false
|
||||||
TabbedPane.tabInsets=0,12,0,12
|
TabbedPane.tabInsets=4,12,4,12
|
||||||
TabbedPane.tabAreaInsets=0,0,0,0
|
TabbedPane.tabAreaInsets=0,0,0,0
|
||||||
TabbedPane.selectedTabPadInsets=0,0,0,0
|
TabbedPane.selectedTabPadInsets=0,0,0,0
|
||||||
TabbedPane.tabRunOverlay=0
|
TabbedPane.tabRunOverlay=0
|
||||||
TabbedPane.tabsOverlapBorder=true
|
TabbedPane.tabsOverlapBorder=true
|
||||||
|
TabbedPane.disabledForeground=@disabledText
|
||||||
TabbedPane.shadow=@background
|
TabbedPane.shadow=@background
|
||||||
TabbedPane.contentBorderInsets=null
|
TabbedPane.contentBorderInsets=null
|
||||||
|
|
||||||
@@ -544,6 +570,7 @@ Table.focusCellHighlightBorder=com.formdev.flatlaf.ui.FlatTableCellBorder$Focuse
|
|||||||
Table.focusSelectedCellHighlightBorder=com.formdev.flatlaf.ui.FlatTableCellBorder$Selected
|
Table.focusSelectedCellHighlightBorder=com.formdev.flatlaf.ui.FlatTableCellBorder$Selected
|
||||||
Table.focusCellBackground=@textComponentBackground
|
Table.focusCellBackground=@textComponentBackground
|
||||||
Table.focusCellForeground=@foreground
|
Table.focusCellForeground=@foreground
|
||||||
|
Table.background=@textComponentBackground
|
||||||
Table.selectionInactiveBackground=@selectionInactiveBackground
|
Table.selectionInactiveBackground=@selectionInactiveBackground
|
||||||
Table.selectionInactiveForeground=@selectionInactiveForeground
|
Table.selectionInactiveForeground=@selectionInactiveForeground
|
||||||
Table.dropCellBackground=@dropCellBackground
|
Table.dropCellBackground=@dropCellBackground
|
||||||
@@ -557,6 +584,7 @@ Table.dropLineShortColor=@dropLineShortColor
|
|||||||
TableHeader.height=25
|
TableHeader.height=25
|
||||||
TableHeader.cellBorder=2,3,2,3
|
TableHeader.cellBorder=2,3,2,3
|
||||||
TableHeader.focusCellBackground=$TableHeader.background
|
TableHeader.focusCellBackground=$TableHeader.background
|
||||||
|
TableHeader.background=@textComponentBackground
|
||||||
|
|
||||||
|
|
||||||
#---- TextArea ----
|
#---- TextArea ----
|
||||||
@@ -628,6 +656,7 @@ ToggleButton.rollover=true
|
|||||||
|
|
||||||
ToggleButton.background=$Button.background
|
ToggleButton.background=$Button.background
|
||||||
ToggleButton.pressedBackground=$Button.pressedBackground
|
ToggleButton.pressedBackground=$Button.pressedBackground
|
||||||
|
ToggleButton.selectedForeground=@foreground
|
||||||
|
|
||||||
ToggleButton.toolbar.hoverBackground=$Button.toolbar.hoverBackground
|
ToggleButton.toolbar.hoverBackground=$Button.toolbar.hoverBackground
|
||||||
ToggleButton.toolbar.pressedBackground=$Button.toolbar.pressedBackground
|
ToggleButton.toolbar.pressedBackground=$Button.toolbar.pressedBackground
|
||||||
@@ -668,9 +697,11 @@ ToolTipManager.enableToolTipMode=activeApplication
|
|||||||
|
|
||||||
Tree.border=1,1,1,1
|
Tree.border=1,1,1,1
|
||||||
Tree.editorBorder=1,1,1,1,@cellFocusColor
|
Tree.editorBorder=1,1,1,1,@cellFocusColor
|
||||||
|
Tree.background=@textComponentBackground
|
||||||
Tree.selectionInactiveBackground=@selectionInactiveBackground
|
Tree.selectionInactiveBackground=@selectionInactiveBackground
|
||||||
Tree.selectionInactiveForeground=@selectionInactiveForeground
|
Tree.selectionInactiveForeground=@selectionInactiveForeground
|
||||||
Tree.textBackground=$Tree.background
|
Tree.textBackground=$Tree.background
|
||||||
|
Tree.textForeground=$Tree.foreground
|
||||||
Tree.selectionBorderColor=@cellFocusColor
|
Tree.selectionBorderColor=@cellFocusColor
|
||||||
Tree.dropCellBackground=@dropCellBackground
|
Tree.dropCellBackground=@dropCellBackground
|
||||||
Tree.dropCellForeground=@dropCellForeground
|
Tree.dropCellForeground=@dropCellForeground
|
||||||
|
|||||||
@@ -21,18 +21,19 @@
|
|||||||
#---- variables ----
|
#---- variables ----
|
||||||
|
|
||||||
@background=#f2f2f2
|
@background=#f2f2f2
|
||||||
@foreground=#000000
|
@foreground=#000
|
||||||
@selectionBackground=#2675BF
|
@selectionBackground=#2675BF
|
||||||
@selectionForeground=#ffffff
|
@selectionForeground=#fff
|
||||||
@selectionInactiveBackground=#d4d4d4
|
@selectionInactiveBackground=#d4d4d4
|
||||||
@selectionInactiveForeground=@foreground
|
@selectionInactiveForeground=@foreground
|
||||||
@disabledText=#8C8C8C
|
@disabledText=#8C8C8C
|
||||||
@textComponentBackground=#ffffff
|
@textComponentBackground=#fff
|
||||||
@menuBackground=#fff
|
@menuBackground=#fff
|
||||||
@menuHoverBackground=darken(@menuBackground,10%,derived)
|
@menuHoverBackground=darken(@menuBackground,10%,derived)
|
||||||
@menuCheckBackground=darken(@menuBackground,10%,derived)
|
@menuCheckBackground=lighten(@selectionBackground,40%)
|
||||||
@menuCheckHoverBackground=darken(@menuBackground,20%,derived)
|
@menuAcceleratorForeground=lighten(@foreground,30%)
|
||||||
@cellFocusColor=#000000
|
@menuAcceleratorSelectionForeground=@selectionForeground
|
||||||
|
@cellFocusColor=#000
|
||||||
@icon=#afafaf
|
@icon=#afafaf
|
||||||
|
|
||||||
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
||||||
@@ -42,24 +43,6 @@
|
|||||||
@dropLineShortColor=darken(List.selectionBackground,20%,lazy)
|
@dropLineShortColor=darken(List.selectionBackground,20%,lazy)
|
||||||
|
|
||||||
|
|
||||||
#---- globals ----
|
|
||||||
|
|
||||||
*.background=@background
|
|
||||||
*.foreground=@foreground
|
|
||||||
*.textBackground=#cccccc
|
|
||||||
*.textForeground=@foreground
|
|
||||||
*.caretForeground=@foreground
|
|
||||||
*.inactiveBackground=@background
|
|
||||||
*.inactiveForeground=@disabledText
|
|
||||||
*.selectionBackground=@selectionBackground
|
|
||||||
*.selectionForeground=@selectionForeground
|
|
||||||
*.disabledBackground=@background
|
|
||||||
*.disabledForeground=@disabledText
|
|
||||||
*.disabledText=@disabledText
|
|
||||||
*.acceleratorForeground=lighten(@foreground,30%)
|
|
||||||
*.acceleratorSelectionForeground=@selectionForeground
|
|
||||||
|
|
||||||
|
|
||||||
#---- system colors ----
|
#---- system colors ----
|
||||||
|
|
||||||
activeCaption=#99b4d1
|
activeCaption=#99b4d1
|
||||||
@@ -71,10 +54,13 @@ controlDkShadow=darken($controlShadow,15%)
|
|||||||
|
|
||||||
#---- Button ----
|
#---- Button ----
|
||||||
|
|
||||||
Button.background=#ffffff
|
Button.background=#fff
|
||||||
Button.focusedBackground=#e3f1fa
|
Button.focusedBackground=#e3f1fa
|
||||||
Button.hoverBackground=darken($Button.background,3%,derived)
|
Button.hoverBackground=darken($Button.background,3%,derived)
|
||||||
Button.pressedBackground=darken($Button.background,10%,derived)
|
Button.pressedBackground=darken($Button.background,10%,derived)
|
||||||
|
Button.selectedBackground=darken($Button.background,20%,derived)
|
||||||
|
Button.selectedForeground=@foreground
|
||||||
|
Button.disabledSelectedBackground=darken($Button.background,13%,derived)
|
||||||
|
|
||||||
Button.borderColor=$Component.borderColor
|
Button.borderColor=$Component.borderColor
|
||||||
Button.disabledBorderColor=$Component.disabledBorderColor
|
Button.disabledBorderColor=$Component.disabledBorderColor
|
||||||
@@ -94,13 +80,14 @@ Button.default.borderWidth=2
|
|||||||
|
|
||||||
Button.toolbar.hoverBackground=darken($Button.background,12%,derived)
|
Button.toolbar.hoverBackground=darken($Button.background,12%,derived)
|
||||||
Button.toolbar.pressedBackground=darken($Button.background,15%,derived)
|
Button.toolbar.pressedBackground=darken($Button.background,15%,derived)
|
||||||
|
Button.toolbar.selectedBackground=$Button.selectedBackground
|
||||||
|
|
||||||
|
|
||||||
#---- CheckBox ----
|
#---- CheckBox ----
|
||||||
|
|
||||||
# enabled
|
# enabled
|
||||||
CheckBox.icon.borderColor=#b0b0b0
|
CheckBox.icon.borderColor=#b0b0b0
|
||||||
CheckBox.icon.background=#FFFFFF
|
CheckBox.icon.background=#fff
|
||||||
CheckBox.icon.selectedBorderColor=$CheckBox.icon.borderColor
|
CheckBox.icon.selectedBorderColor=$CheckBox.icon.borderColor
|
||||||
CheckBox.icon.selectedBackground=$CheckBox.icon.background
|
CheckBox.icon.selectedBackground=$CheckBox.icon.background
|
||||||
CheckBox.icon.checkmarkColor=#4F9EE3
|
CheckBox.icon.checkmarkColor=#4F9EE3
|
||||||
@@ -126,7 +113,7 @@ CheckBox.icon.pressedBackground=$Button.pressedBackground
|
|||||||
# enabled
|
# enabled
|
||||||
CheckBox.icon[filled].selectedBorderColor=#4B97D9
|
CheckBox.icon[filled].selectedBorderColor=#4B97D9
|
||||||
CheckBox.icon[filled].selectedBackground=#4F9EE3
|
CheckBox.icon[filled].selectedBackground=#4F9EE3
|
||||||
CheckBox.icon[filled].checkmarkColor=#FFFFFF
|
CheckBox.icon[filled].checkmarkColor=#fff
|
||||||
# focused
|
# focused
|
||||||
CheckBox.icon[filled].selectedFocusedBorderColor=#ACCFF7
|
CheckBox.icon[filled].selectedFocusedBorderColor=#ACCFF7
|
||||||
CheckBox.icon[filled].selectedFocusedBackground=$CheckBox.icon[filled].selectedBackground
|
CheckBox.icon[filled].selectedFocusedBackground=$CheckBox.icon[filled].selectedBackground
|
||||||
@@ -139,12 +126,10 @@ CheckBox.icon[filled].selectedPressedBackground=darken($CheckBox.icon[filled].se
|
|||||||
|
|
||||||
#---- ComboBox ----
|
#---- ComboBox ----
|
||||||
|
|
||||||
ComboBox.background=@textComponentBackground
|
|
||||||
ComboBox.buttonBackground=@textComponentBackground
|
|
||||||
ComboBox.buttonEditableBackground=#fafafa
|
ComboBox.buttonEditableBackground=#fafafa
|
||||||
ComboBox.buttonArrowColor=#666666
|
ComboBox.buttonArrowColor=#666
|
||||||
ComboBox.buttonDisabledArrowColor=#ABABAB
|
ComboBox.buttonDisabledArrowColor=#ABABAB
|
||||||
ComboBox.buttonHoverArrowColor=#999999
|
ComboBox.buttonHoverArrowColor=#999
|
||||||
|
|
||||||
|
|
||||||
#---- Component ----
|
#---- Component ----
|
||||||
@@ -199,21 +184,15 @@ InternalFrame.activeDropShadowOpacity=0.25
|
|||||||
InternalFrame.inactiveDropShadowOpacity=0.5
|
InternalFrame.inactiveDropShadowOpacity=0.5
|
||||||
|
|
||||||
|
|
||||||
#---- List ----
|
|
||||||
|
|
||||||
List.background=@textComponentBackground
|
|
||||||
|
|
||||||
|
|
||||||
#---- Menu ----
|
#---- Menu ----
|
||||||
|
|
||||||
Menu.icon.arrowColor=#666666
|
Menu.icon.arrowColor=#666
|
||||||
Menu.icon.disabledArrowColor=#ABABAB
|
Menu.icon.disabledArrowColor=#ABABAB
|
||||||
|
|
||||||
|
|
||||||
#---- MenuBar ----
|
#---- MenuBar ----
|
||||||
|
|
||||||
MenuBar.borderColor=#cdcdcd
|
MenuBar.borderColor=#cdcdcd
|
||||||
MenuBar.hoverBackground=@menuHoverBackground
|
|
||||||
|
|
||||||
|
|
||||||
#---- MenuItemCheckBox ----
|
#---- MenuItemCheckBox ----
|
||||||
@@ -246,11 +225,6 @@ ProgressBar.selectionForeground=@textComponentBackground
|
|||||||
ProgressBar.selectionBackground=@foreground
|
ProgressBar.selectionBackground=@foreground
|
||||||
|
|
||||||
|
|
||||||
#---- RadioButton ----
|
|
||||||
|
|
||||||
RadioButton.icon[filled].centerDiameter=5
|
|
||||||
|
|
||||||
|
|
||||||
#---- RootPane ----
|
#---- RootPane ----
|
||||||
|
|
||||||
RootPane.activeBorderColor=#707070
|
RootPane.activeBorderColor=#707070
|
||||||
@@ -277,7 +251,7 @@ Separator.foreground=#d1d1d1
|
|||||||
|
|
||||||
Slider.trackColor=#c4c4c4
|
Slider.trackColor=#c4c4c4
|
||||||
Slider.thumbColor=#6e6e6e
|
Slider.thumbColor=#6e6e6e
|
||||||
Slider.tickColor=#888888
|
Slider.tickColor=#888
|
||||||
Slider.hoverColor=lighten($Slider.thumbColor,15%,derived)
|
Slider.hoverColor=lighten($Slider.thumbColor,15%,derived)
|
||||||
Slider.disabledForeground=#c0c0c0
|
Slider.disabledForeground=#c0c0c0
|
||||||
|
|
||||||
@@ -285,12 +259,11 @@ Slider.disabledForeground=#c0c0c0
|
|||||||
#---- SplitPane ----
|
#---- SplitPane ----
|
||||||
|
|
||||||
SplitPaneDivider.draggingColor=#c4c4c4
|
SplitPaneDivider.draggingColor=#c4c4c4
|
||||||
SplitPaneDivider.oneTouchHoverArrowColor=#333333
|
SplitPaneDivider.oneTouchHoverArrowColor=#333
|
||||||
|
|
||||||
|
|
||||||
#---- TabbedPane ----
|
#---- TabbedPane ----
|
||||||
|
|
||||||
TabbedPane.disabledForeground=@disabledText
|
|
||||||
TabbedPane.underlineColor=#4083C9
|
TabbedPane.underlineColor=#4083C9
|
||||||
TabbedPane.disabledUnderlineColor=#ababab
|
TabbedPane.disabledUnderlineColor=#ababab
|
||||||
TabbedPane.hoverColor=#d9d9d9
|
TabbedPane.hoverColor=#d9d9d9
|
||||||
@@ -300,13 +273,11 @@ TabbedPane.contentAreaColor=#bfbfbf
|
|||||||
|
|
||||||
#---- Table ----
|
#---- Table ----
|
||||||
|
|
||||||
Table.background=@textComponentBackground
|
|
||||||
Table.gridColor=darken($Table.background,3%)
|
Table.gridColor=darken($Table.background,3%)
|
||||||
|
|
||||||
|
|
||||||
#---- TableHeader ----
|
#---- TableHeader ----
|
||||||
|
|
||||||
TableHeader.background=@textComponentBackground
|
|
||||||
TableHeader.separatorColor=darken($TableHeader.background,10%)
|
TableHeader.separatorColor=darken($TableHeader.background,10%)
|
||||||
TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
||||||
|
|
||||||
@@ -321,7 +292,6 @@ TitlePane.buttonPressedBackground=darken($TitlePane.background,20%,derived)
|
|||||||
#---- ToggleButton ----
|
#---- ToggleButton ----
|
||||||
|
|
||||||
ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived)
|
ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived)
|
||||||
ToggleButton.selectedForeground=@foreground
|
|
||||||
ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived)
|
ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived)
|
||||||
|
|
||||||
ToggleButton.toolbar.selectedBackground=$ToggleButton.selectedBackground
|
ToggleButton.toolbar.selectedBackground=$ToggleButton.selectedBackground
|
||||||
@@ -335,5 +305,4 @@ ToolTip.background=#fafafa
|
|||||||
|
|
||||||
#---- Tree ----
|
#---- Tree ----
|
||||||
|
|
||||||
Tree.background=@textComponentBackground
|
|
||||||
Tree.hash=#E6E6E6
|
Tree.hash=#E6E6E6
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.demo;
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.text.DefaultEditorKit;
|
import javax.swing.text.DefaultEditorKit;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
@@ -114,14 +115,14 @@ class BasicComponentsPanel
|
|||||||
JScrollPane scrollPane12 = new JScrollPane();
|
JScrollPane scrollPane12 = new JScrollPane();
|
||||||
JTextPane textPane4 = new JTextPane();
|
JTextPane textPane4 = new JTextPane();
|
||||||
JTextPane textPane5 = new JTextPane();
|
JTextPane textPane5 = new JTextPane();
|
||||||
JLabel label3 = new JLabel();
|
JLabel errorHintsLabel = new JLabel();
|
||||||
JTextField textField5 = new JTextField();
|
JTextField errorHintsTextField = new JTextField();
|
||||||
JComboBox<String> comboBox7 = new JComboBox<>();
|
JComboBox<String> errorHintsComboBox = new JComboBox<>();
|
||||||
JSpinner spinner3 = new JSpinner();
|
JSpinner errorHintsSpinner = new JSpinner();
|
||||||
JLabel label4 = new JLabel();
|
JLabel warningHintsLabel = new JLabel();
|
||||||
JTextField textField7 = new JTextField();
|
JTextField warningHintsTextField = new JTextField();
|
||||||
JComboBox<String> comboBox8 = new JComboBox<>();
|
JComboBox<String> warningHintsComboBox = new JComboBox<>();
|
||||||
JSpinner spinner4 = new JSpinner();
|
JSpinner warningHintsSpinner = new JSpinner();
|
||||||
JPopupMenu popupMenu1 = new JPopupMenu();
|
JPopupMenu popupMenu1 = new JPopupMenu();
|
||||||
JMenuItem cutMenuItem = new JMenuItem();
|
JMenuItem cutMenuItem = new JMenuItem();
|
||||||
JMenuItem copyMenuItem = new JMenuItem();
|
JMenuItem copyMenuItem = new JMenuItem();
|
||||||
@@ -129,12 +130,12 @@ class BasicComponentsPanel
|
|||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
"hidemode 3",
|
"insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[]" +
|
"[sizegroup 1]" +
|
||||||
"[]" +
|
"[sizegroup 1]" +
|
||||||
"[]" +
|
"[sizegroup 1]" +
|
||||||
"[]" +
|
"[sizegroup 1]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]",
|
"[]",
|
||||||
// rows
|
// rows
|
||||||
@@ -606,44 +607,44 @@ class BasicComponentsPanel
|
|||||||
textPane5.setText("No scroll pane");
|
textPane5.setText("No scroll pane");
|
||||||
add(textPane5, "cell 5 11,growx");
|
add(textPane5, "cell 5 11,growx");
|
||||||
|
|
||||||
//---- label3 ----
|
//---- errorHintsLabel ----
|
||||||
label3.setText("Error hints:");
|
errorHintsLabel.setText("Error hints:");
|
||||||
add(label3, "cell 0 12");
|
add(errorHintsLabel, "cell 0 12");
|
||||||
|
|
||||||
//---- textField5 ----
|
//---- errorHintsTextField ----
|
||||||
textField5.putClientProperty("JComponent.outline", "error");
|
errorHintsTextField.putClientProperty("JComponent.outline", "error");
|
||||||
add(textField5, "cell 1 12,growx");
|
add(errorHintsTextField, "cell 1 12,growx");
|
||||||
|
|
||||||
//---- comboBox7 ----
|
//---- errorHintsComboBox ----
|
||||||
comboBox7.putClientProperty("JComponent.outline", "error");
|
errorHintsComboBox.putClientProperty("JComponent.outline", "error");
|
||||||
comboBox7.setModel(new DefaultComboBoxModel<>(new String[] {
|
errorHintsComboBox.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
"Editable"
|
"Editable"
|
||||||
}));
|
}));
|
||||||
comboBox7.setEditable(true);
|
errorHintsComboBox.setEditable(true);
|
||||||
add(comboBox7, "cell 2 12,growx");
|
add(errorHintsComboBox, "cell 2 12,growx");
|
||||||
|
|
||||||
//---- spinner3 ----
|
//---- errorHintsSpinner ----
|
||||||
spinner3.putClientProperty("JComponent.outline", "error");
|
errorHintsSpinner.putClientProperty("JComponent.outline", "error");
|
||||||
add(spinner3, "cell 3 12,growx");
|
add(errorHintsSpinner, "cell 3 12,growx");
|
||||||
|
|
||||||
//---- label4 ----
|
//---- warningHintsLabel ----
|
||||||
label4.setText("Warning hints:");
|
warningHintsLabel.setText("Warning hints:");
|
||||||
add(label4, "cell 0 13");
|
add(warningHintsLabel, "cell 0 13");
|
||||||
|
|
||||||
//---- textField7 ----
|
//---- warningHintsTextField ----
|
||||||
textField7.putClientProperty("JComponent.outline", "warning");
|
warningHintsTextField.putClientProperty("JComponent.outline", "warning");
|
||||||
add(textField7, "cell 1 13,growx");
|
add(warningHintsTextField, "cell 1 13,growx");
|
||||||
|
|
||||||
//---- comboBox8 ----
|
//---- warningHintsComboBox ----
|
||||||
comboBox8.putClientProperty("JComponent.outline", "warning");
|
warningHintsComboBox.putClientProperty("JComponent.outline", "warning");
|
||||||
comboBox8.setModel(new DefaultComboBoxModel<>(new String[] {
|
warningHintsComboBox.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
"Not editable"
|
"Not editable"
|
||||||
}));
|
}));
|
||||||
add(comboBox8, "cell 2 13,growx");
|
add(warningHintsComboBox, "cell 2 13,growx");
|
||||||
|
|
||||||
//---- spinner4 ----
|
//---- warningHintsSpinner ----
|
||||||
spinner4.putClientProperty("JComponent.outline", "warning");
|
warningHintsSpinner.putClientProperty("JComponent.outline", "warning");
|
||||||
add(spinner4, "cell 3 13,growx");
|
add(warningHintsSpinner, "cell 3 13,growx");
|
||||||
|
|
||||||
//======== popupMenu1 ========
|
//======== popupMenu1 ========
|
||||||
{
|
{
|
||||||
@@ -668,6 +669,33 @@ class BasicComponentsPanel
|
|||||||
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
|
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
|
||||||
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
|
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
|
||||||
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
|
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
|
||||||
|
|
||||||
|
if( FlatLafDemo.screenshotsMode ) {
|
||||||
|
Component[] components = {
|
||||||
|
button13, button14, button15, button16, comboBox5, comboBox6,
|
||||||
|
textField6, passwordField5,
|
||||||
|
|
||||||
|
formattedTextFieldLabel, formattedTextField1, formattedTextField2, formattedTextField3, formattedTextField4, formattedTextField5,
|
||||||
|
textAreaLabel, scrollPane1, scrollPane2, scrollPane3, scrollPane4, textArea5,
|
||||||
|
editorPaneLabel, scrollPane5, scrollPane6, scrollPane7, scrollPane8, editorPane5,
|
||||||
|
textPaneLabel, scrollPane9, scrollPane10, scrollPane11, scrollPane12, textPane5,
|
||||||
|
|
||||||
|
errorHintsLabel, errorHintsTextField, errorHintsComboBox, errorHintsSpinner,
|
||||||
|
warningHintsLabel, warningHintsTextField, warningHintsComboBox, warningHintsSpinner,
|
||||||
|
};
|
||||||
|
|
||||||
|
for( Component c : components )
|
||||||
|
c.setVisible( false );
|
||||||
|
|
||||||
|
// move password fields one row up
|
||||||
|
Component[] formattedTextFields = { formattedTextFieldLabel, formattedTextField1, formattedTextField2, formattedTextField3, formattedTextField4 };
|
||||||
|
Component[] passwordFields = { passwordFieldLabel, passwordField1, passwordField2, passwordField3, passwordField4 };
|
||||||
|
MigLayout layout = (MigLayout) getLayout();
|
||||||
|
for( int i = 0; i < passwordFields.length; i++ ) {
|
||||||
|
Object cons = layout.getComponentConstraints( formattedTextFields[i] );
|
||||||
|
layout.setComponentConstraints( passwordFields[i], cons );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.defaultVariableLocal": true
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][][][][][]"
|
"$columnConstraints": "[sizegroup 1][sizegroup 1][sizegroup 1][sizegroup 1][][]"
|
||||||
"$rowConstraints": "[][][][][][][][][][][][]para[][]"
|
"$rowConstraints": "[][][][][][][][][][][][]para[][]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
@@ -592,19 +592,19 @@ new FormModel {
|
|||||||
"value": "cell 5 11,growx"
|
"value": "cell 5 11,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "label3"
|
name: "errorHintsLabel"
|
||||||
"text": "Error hints:"
|
"text": "Error hints:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 12"
|
"value": "cell 0 12"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JTextField" ) {
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
name: "textField5"
|
name: "errorHintsTextField"
|
||||||
"$client.JComponent.outline": "error"
|
"$client.JComponent.outline": "error"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 12,growx"
|
"value": "cell 1 12,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
name: "comboBox7"
|
name: "errorHintsComboBox"
|
||||||
"$client.JComponent.outline": "error"
|
"$client.JComponent.outline": "error"
|
||||||
"model": new javax.swing.DefaultComboBoxModel {
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
selectedItem: "Editable"
|
selectedItem: "Editable"
|
||||||
@@ -615,25 +615,25 @@ new FormModel {
|
|||||||
"value": "cell 2 12,growx"
|
"value": "cell 2 12,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JSpinner" ) {
|
add( new FormComponent( "javax.swing.JSpinner" ) {
|
||||||
name: "spinner3"
|
name: "errorHintsSpinner"
|
||||||
"$client.JComponent.outline": "error"
|
"$client.JComponent.outline": "error"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 3 12,growx"
|
"value": "cell 3 12,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "label4"
|
name: "warningHintsLabel"
|
||||||
"text": "Warning hints:"
|
"text": "Warning hints:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 13"
|
"value": "cell 0 13"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JTextField" ) {
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
name: "textField7"
|
name: "warningHintsTextField"
|
||||||
"$client.JComponent.outline": "warning"
|
"$client.JComponent.outline": "warning"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 13,growx"
|
"value": "cell 1 13,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
name: "comboBox8"
|
name: "warningHintsComboBox"
|
||||||
"$client.JComponent.outline": "warning"
|
"$client.JComponent.outline": "warning"
|
||||||
"model": new javax.swing.DefaultComboBoxModel {
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
selectedItem: "Not editable"
|
selectedItem: "Not editable"
|
||||||
@@ -643,7 +643,7 @@ new FormModel {
|
|||||||
"value": "cell 2 13,growx"
|
"value": "cell 2 13,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JSpinner" ) {
|
add( new FormComponent( "javax.swing.JSpinner" ) {
|
||||||
name: "spinner4"
|
name: "warningHintsSpinner"
|
||||||
"$client.JComponent.outline": "warning"
|
"$client.JComponent.outline": "warning"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 3 13,growx"
|
"value": "cell 3 13,growx"
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ import com.formdev.flatlaf.*;
|
|||||||
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
import net.miginfocom.layout.ConstraintParser;
|
||||||
|
import net.miginfocom.layout.LC;
|
||||||
|
import net.miginfocom.layout.UnitValue;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,6 +47,18 @@ class ControlBar
|
|||||||
ControlBar() {
|
ControlBar() {
|
||||||
initComponents();
|
initComponents();
|
||||||
|
|
||||||
|
// remove top insets
|
||||||
|
MigLayout layout = (MigLayout) getLayout();
|
||||||
|
LC lc = ConstraintParser.parseLayoutConstraint( (String) layout.getLayoutConstraints() );
|
||||||
|
UnitValue[] insets = lc.getInsets();
|
||||||
|
lc.setInsets( new UnitValue[] {
|
||||||
|
new UnitValue( 0, UnitValue.PIXEL, null ),
|
||||||
|
insets[1],
|
||||||
|
insets[2],
|
||||||
|
insets[3]
|
||||||
|
} );
|
||||||
|
layout.setLayoutConstraints( lc );
|
||||||
|
|
||||||
// initialize look and feels combo box
|
// initialize look and feels combo box
|
||||||
DefaultComboBoxModel<LookAndFeelInfo> lafModel = new DefaultComboBoxModel<>();
|
DefaultComboBoxModel<LookAndFeelInfo> lafModel = new DefaultComboBoxModel<>();
|
||||||
lafModel.addElement( new LookAndFeelInfo( "Flat Light (F1)", FlatLightLaf.class.getName() ) );
|
lafModel.addElement( new LookAndFeelInfo( "Flat Light (F1)", FlatLightLaf.class.getName() ) );
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.demo;
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.EventQueue;
|
||||||
import java.awt.datatransfer.DataFlavor;
|
import java.awt.datatransfer.DataFlavor;
|
||||||
import java.awt.datatransfer.StringSelection;
|
import java.awt.datatransfer.StringSelection;
|
||||||
import java.awt.datatransfer.Transferable;
|
import java.awt.datatransfer.Transferable;
|
||||||
@@ -64,6 +67,41 @@ class DataComponentsPanel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void rowSelectionChanged() {
|
||||||
|
table1.setRowSelectionAllowed( rowSelectionCheckBox.isSelected() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void columnSelectionChanged() {
|
||||||
|
table1.setColumnSelectionAllowed( columnSelectionCheckBox.isSelected() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showHorizontalLinesChanged() {
|
||||||
|
table1.setShowHorizontalLines( showHorizontalLinesCheckBox.isSelected() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showVerticalLinesChanged() {
|
||||||
|
table1.setShowVerticalLines( showVerticalLinesCheckBox.isSelected() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void intercellSpacingChanged() {
|
||||||
|
table1.setIntercellSpacing( intercellSpacingCheckBox.isSelected() ? new Dimension( 1, 1 ) : new Dimension() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void redGridColorChanged() {
|
||||||
|
table1.setGridColor( redGridColorCheckBox.isSelected() ? Color.red : UIManager.getColor( "Table.gridColor" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUI() {
|
||||||
|
super.updateUI();
|
||||||
|
|
||||||
|
EventQueue.invokeLater( () -> {
|
||||||
|
showHorizontalLinesChanged();
|
||||||
|
showVerticalLinesChanged();
|
||||||
|
intercellSpacingChanged();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings( { "unchecked", "rawtypes" } )
|
@SuppressWarnings( { "unchecked", "rawtypes" } )
|
||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
@@ -80,6 +118,13 @@ class DataComponentsPanel
|
|||||||
JLabel tableLabel = new JLabel();
|
JLabel tableLabel = new JLabel();
|
||||||
JScrollPane scrollPane5 = new JScrollPane();
|
JScrollPane scrollPane5 = new JScrollPane();
|
||||||
table1 = new JTable();
|
table1 = new JTable();
|
||||||
|
JPanel tableOptionsPanel = new JPanel();
|
||||||
|
showHorizontalLinesCheckBox = new JCheckBox();
|
||||||
|
showVerticalLinesCheckBox = new JCheckBox();
|
||||||
|
intercellSpacingCheckBox = new JCheckBox();
|
||||||
|
redGridColorCheckBox = new JCheckBox();
|
||||||
|
rowSelectionCheckBox = new JCheckBox();
|
||||||
|
columnSelectionCheckBox = new JCheckBox();
|
||||||
dndCheckBox = new JCheckBox();
|
dndCheckBox = new JCheckBox();
|
||||||
JPopupMenu popupMenu2 = new JPopupMenu();
|
JPopupMenu popupMenu2 = new JPopupMenu();
|
||||||
JMenuItem menuItem3 = new JMenuItem();
|
JMenuItem menuItem3 = new JMenuItem();
|
||||||
@@ -89,20 +134,20 @@ class DataComponentsPanel
|
|||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
"hidemode 3",
|
"insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[]" +
|
"[]" +
|
||||||
"[200]" +
|
"[200,fill]" +
|
||||||
"[200]",
|
"[200,fill]" +
|
||||||
|
"[fill]",
|
||||||
// rows
|
// rows
|
||||||
"[]" +
|
"[150,grow,sizegroup 1,fill]" +
|
||||||
"[::200]" +
|
"[150,grow,sizegroup 1,fill]" +
|
||||||
"[::150]" +
|
"[150,grow,sizegroup 1,fill]"));
|
||||||
"[]"));
|
|
||||||
|
|
||||||
//---- listLabel ----
|
//---- listLabel ----
|
||||||
listLabel.setText("JList:");
|
listLabel.setText("JList:");
|
||||||
add(listLabel, "cell 0 0");
|
add(listLabel, "cell 0 0,aligny top,growy 0");
|
||||||
|
|
||||||
//======== scrollPane1 ========
|
//======== scrollPane1 ========
|
||||||
{
|
{
|
||||||
@@ -134,7 +179,7 @@ class DataComponentsPanel
|
|||||||
list1.setComponentPopupMenu(popupMenu2);
|
list1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane1.setViewportView(list1);
|
scrollPane1.setViewportView(list1);
|
||||||
}
|
}
|
||||||
add(scrollPane1, "cell 1 0,growx");
|
add(scrollPane1, "cell 1 0");
|
||||||
|
|
||||||
//======== scrollPane2 ========
|
//======== scrollPane2 ========
|
||||||
{
|
{
|
||||||
@@ -166,11 +211,11 @@ class DataComponentsPanel
|
|||||||
list2.setEnabled(false);
|
list2.setEnabled(false);
|
||||||
scrollPane2.setViewportView(list2);
|
scrollPane2.setViewportView(list2);
|
||||||
}
|
}
|
||||||
add(scrollPane2, "cell 2 0,growx");
|
add(scrollPane2, "cell 2 0");
|
||||||
|
|
||||||
//---- treeLabel ----
|
//---- treeLabel ----
|
||||||
treeLabel.setText("JTree:");
|
treeLabel.setText("JTree:");
|
||||||
add(treeLabel, "cell 0 1");
|
add(treeLabel, "cell 0 1,aligny top,growy 0");
|
||||||
|
|
||||||
//======== scrollPane3 ========
|
//======== scrollPane3 ========
|
||||||
{
|
{
|
||||||
@@ -207,7 +252,7 @@ class DataComponentsPanel
|
|||||||
tree1.setComponentPopupMenu(popupMenu2);
|
tree1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane3.setViewportView(tree1);
|
scrollPane3.setViewportView(tree1);
|
||||||
}
|
}
|
||||||
add(scrollPane3, "cell 1 1,growx");
|
add(scrollPane3, "cell 1 1");
|
||||||
|
|
||||||
//======== scrollPane4 ========
|
//======== scrollPane4 ========
|
||||||
{
|
{
|
||||||
@@ -216,11 +261,11 @@ class DataComponentsPanel
|
|||||||
tree2.setEnabled(false);
|
tree2.setEnabled(false);
|
||||||
scrollPane4.setViewportView(tree2);
|
scrollPane4.setViewportView(tree2);
|
||||||
}
|
}
|
||||||
add(scrollPane4, "cell 2 1,growx");
|
add(scrollPane4, "cell 2 1");
|
||||||
|
|
||||||
//---- tableLabel ----
|
//---- tableLabel ----
|
||||||
tableLabel.setText("JTable:");
|
tableLabel.setText("JTable:");
|
||||||
add(tableLabel, "cell 0 2");
|
add(tableLabel, "cell 0 2,aligny top,growy 0");
|
||||||
|
|
||||||
//======== scrollPane5 ========
|
//======== scrollPane5 ========
|
||||||
{
|
{
|
||||||
@@ -297,13 +342,61 @@ class DataComponentsPanel
|
|||||||
table1.setComponentPopupMenu(popupMenu2);
|
table1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane5.setViewportView(table1);
|
scrollPane5.setViewportView(table1);
|
||||||
}
|
}
|
||||||
add(scrollPane5, "cell 1 2 2 1,growx,width 300");
|
add(scrollPane5, "cell 1 2 2 1,width 300");
|
||||||
|
|
||||||
//---- dndCheckBox ----
|
//======== tableOptionsPanel ========
|
||||||
dndCheckBox.setText("enable drag and drop");
|
{
|
||||||
dndCheckBox.setMnemonic('D');
|
tableOptionsPanel.setLayout(new MigLayout(
|
||||||
dndCheckBox.addActionListener(e -> dndChanged());
|
"insets 0,hidemode 3",
|
||||||
add(dndCheckBox, "cell 0 3 3 1");
|
// columns
|
||||||
|
"[]",
|
||||||
|
// rows
|
||||||
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
|
"[]0" +
|
||||||
|
"[]0"));
|
||||||
|
|
||||||
|
//---- showHorizontalLinesCheckBox ----
|
||||||
|
showHorizontalLinesCheckBox.setText("show horizontal lines");
|
||||||
|
showHorizontalLinesCheckBox.addActionListener(e -> showHorizontalLinesChanged());
|
||||||
|
tableOptionsPanel.add(showHorizontalLinesCheckBox, "cell 0 0");
|
||||||
|
|
||||||
|
//---- showVerticalLinesCheckBox ----
|
||||||
|
showVerticalLinesCheckBox.setText("show vertical lines");
|
||||||
|
showVerticalLinesCheckBox.addActionListener(e -> showVerticalLinesChanged());
|
||||||
|
tableOptionsPanel.add(showVerticalLinesCheckBox, "cell 0 1");
|
||||||
|
|
||||||
|
//---- intercellSpacingCheckBox ----
|
||||||
|
intercellSpacingCheckBox.setText("intercell spacing");
|
||||||
|
intercellSpacingCheckBox.addActionListener(e -> intercellSpacingChanged());
|
||||||
|
tableOptionsPanel.add(intercellSpacingCheckBox, "cell 0 2");
|
||||||
|
|
||||||
|
//---- redGridColorCheckBox ----
|
||||||
|
redGridColorCheckBox.setText("red grid color");
|
||||||
|
redGridColorCheckBox.addActionListener(e -> redGridColorChanged());
|
||||||
|
tableOptionsPanel.add(redGridColorCheckBox, "cell 0 3");
|
||||||
|
|
||||||
|
//---- rowSelectionCheckBox ----
|
||||||
|
rowSelectionCheckBox.setText("row selection");
|
||||||
|
rowSelectionCheckBox.setSelected(true);
|
||||||
|
rowSelectionCheckBox.addActionListener(e -> rowSelectionChanged());
|
||||||
|
tableOptionsPanel.add(rowSelectionCheckBox, "cell 0 4");
|
||||||
|
|
||||||
|
//---- columnSelectionCheckBox ----
|
||||||
|
columnSelectionCheckBox.setText("column selection");
|
||||||
|
columnSelectionCheckBox.addActionListener(e -> columnSelectionChanged());
|
||||||
|
tableOptionsPanel.add(columnSelectionCheckBox, "cell 0 5");
|
||||||
|
|
||||||
|
//---- dndCheckBox ----
|
||||||
|
dndCheckBox.setText("enable drag and drop");
|
||||||
|
dndCheckBox.setMnemonic('D');
|
||||||
|
dndCheckBox.addActionListener(e -> dndChanged());
|
||||||
|
tableOptionsPanel.add(dndCheckBox, "cell 0 6");
|
||||||
|
}
|
||||||
|
add(tableOptionsPanel, "cell 3 2");
|
||||||
|
|
||||||
//======== popupMenu2 ========
|
//======== popupMenu2 ========
|
||||||
{
|
{
|
||||||
@@ -336,6 +429,12 @@ class DataComponentsPanel
|
|||||||
private JTree tree1;
|
private JTree tree1;
|
||||||
private JTree tree2;
|
private JTree tree2;
|
||||||
private JTable table1;
|
private JTable table1;
|
||||||
|
private JCheckBox showHorizontalLinesCheckBox;
|
||||||
|
private JCheckBox showVerticalLinesCheckBox;
|
||||||
|
private JCheckBox intercellSpacingCheckBox;
|
||||||
|
private JCheckBox redGridColorCheckBox;
|
||||||
|
private JCheckBox rowSelectionCheckBox;
|
||||||
|
private JCheckBox columnSelectionCheckBox;
|
||||||
private JCheckBox dndCheckBox;
|
private JCheckBox dndCheckBox;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -7,16 +7,16 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.defaultVariableLocal": true
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][200][200]"
|
"$columnConstraints": "[][200,fill][200,fill][fill]"
|
||||||
"$rowConstraints": "[][::200][::150][]"
|
"$rowConstraints": "[150,grow,sizegroup 1,fill][150,grow,sizegroup 1,fill][150,grow,sizegroup 1,fill]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "listLabel"
|
name: "listLabel"
|
||||||
"text": "JList:"
|
"text": "JList:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 0"
|
"value": "cell 0 0,aligny top,growy 0"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane1"
|
name: "scrollPane1"
|
||||||
@@ -46,7 +46,7 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 0,growx"
|
"value": "cell 1 0"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane2"
|
name: "scrollPane2"
|
||||||
@@ -76,13 +76,13 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 0,growx"
|
"value": "cell 2 0"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "treeLabel"
|
name: "treeLabel"
|
||||||
"text": "JTree:"
|
"text": "JTree:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 1"
|
"value": "cell 0 1,aligny top,growy 0"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane3"
|
name: "scrollPane3"
|
||||||
@@ -150,7 +150,7 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 1,growx"
|
"value": "cell 1 1"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane4"
|
name: "scrollPane4"
|
||||||
@@ -162,13 +162,13 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 1,growx"
|
"value": "cell 2 1"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "tableLabel"
|
name: "tableLabel"
|
||||||
"text": "JTable:"
|
"text": "JTable:"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 2"
|
"value": "cell 0 2,aligny top,growy 0"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane5"
|
name: "scrollPane5"
|
||||||
@@ -307,22 +307,92 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 2 2 1,growx,width 300"
|
"value": "cell 1 2 2 1,width 300"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
name: "dndCheckBox"
|
"$layoutConstraints": "insets 0,hidemode 3"
|
||||||
"text": "enable drag and drop"
|
"$columnConstraints": "[]"
|
||||||
"mnemonic": 68
|
"$rowConstraints": "[]0[]0[]0[]0[]0[]0[]0"
|
||||||
auxiliary() {
|
} ) {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
name: "tableOptionsPanel"
|
||||||
}
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "dndChanged", false ) )
|
name: "showHorizontalLinesCheckBox"
|
||||||
|
"text": "show horizontal lines"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showHorizontalLinesChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "showVerticalLinesCheckBox"
|
||||||
|
"text": "show vertical lines"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showVerticalLinesChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "intercellSpacingCheckBox"
|
||||||
|
"text": "intercell spacing"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "intercellSpacingChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 2"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "redGridColorCheckBox"
|
||||||
|
"text": "red grid color"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "redGridColorChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 3"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "rowSelectionCheckBox"
|
||||||
|
"text": "row selection"
|
||||||
|
"selected": true
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "rowSelectionChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 4"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "columnSelectionCheckBox"
|
||||||
|
"text": "column selection"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "columnSelectionChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 5"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "dndCheckBox"
|
||||||
|
"text": "enable drag and drop"
|
||||||
|
"mnemonic": 68
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "dndChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 6"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 3 3 1"
|
"value": "cell 3 2"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 790, 715 )
|
"size": new java.awt.Dimension( 790, 745 )
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
||||||
name: "popupMenu2"
|
name: "popupMenu2"
|
||||||
@@ -346,7 +416,7 @@ new FormModel {
|
|||||||
"text": "Noop Action"
|
"text": "Noop Action"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 740 )
|
"location": new java.awt.Point( 0, 800 )
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,17 +20,23 @@ import java.awt.*;
|
|||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.prefs.Preferences;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.text.DefaultEditorKit;
|
import javax.swing.text.DefaultEditorKit;
|
||||||
import javax.swing.text.StyleContext;
|
import javax.swing.text.StyleContext;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
import com.formdev.flatlaf.FlatLaf;
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
|
import com.formdev.flatlaf.demo.HintManager.Hint;
|
||||||
import com.formdev.flatlaf.demo.extras.*;
|
import com.formdev.flatlaf.demo.extras.*;
|
||||||
import com.formdev.flatlaf.demo.intellijthemes.*;
|
import com.formdev.flatlaf.demo.intellijthemes.*;
|
||||||
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
||||||
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
||||||
|
import com.formdev.flatlaf.extras.FlatUIDefaultsInspector;
|
||||||
import com.formdev.flatlaf.extras.SVGUtils;
|
import com.formdev.flatlaf.extras.SVGUtils;
|
||||||
import com.formdev.flatlaf.ui.JBRCustomDecorations;
|
import com.formdev.flatlaf.ui.JBRCustomDecorations;
|
||||||
|
import net.miginfocom.layout.ConstraintParser;
|
||||||
|
import net.miginfocom.layout.LC;
|
||||||
|
import net.miginfocom.layout.UnitValue;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,6 +63,61 @@ class DemoFrame
|
|||||||
|
|
||||||
if( tabIndex >= 0 && tabIndex < tabbedPane.getTabCount() && tabIndex != tabbedPane.getSelectedIndex() )
|
if( tabIndex >= 0 && tabIndex < tabbedPane.getTabCount() && tabIndex != tabbedPane.getSelectedIndex() )
|
||||||
tabbedPane.setSelectedIndex( tabIndex );
|
tabbedPane.setSelectedIndex( tabIndex );
|
||||||
|
|
||||||
|
SwingUtilities.invokeLater( () -> {
|
||||||
|
showHints();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
|
||||||
|
FlatUIDefaultsInspector.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showHints() {
|
||||||
|
Hint fontMenuHint = new Hint(
|
||||||
|
"Use 'Font' menu to increase/decrease font size or try different fonts.",
|
||||||
|
fontMenu, SwingConstants.BOTTOM, "hint.fontMenu", null );
|
||||||
|
|
||||||
|
Hint optionsMenuHint = new Hint(
|
||||||
|
"Use 'Options' menu to try out various FlatLaf options.",
|
||||||
|
optionsMenu, SwingConstants.BOTTOM, "hint.optionsMenu", fontMenuHint );
|
||||||
|
|
||||||
|
Hint themesHint = new Hint(
|
||||||
|
"Use 'Themes' list to try out various themes.",
|
||||||
|
themesPanel, SwingConstants.LEFT, "hint.themesPanel", optionsMenuHint );
|
||||||
|
|
||||||
|
HintManager.showHint( themesHint );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearHints() {
|
||||||
|
HintManager.hideAllHints();
|
||||||
|
|
||||||
|
Preferences state = DemoPrefs.getState();
|
||||||
|
state.remove( "hint.fontMenu" );
|
||||||
|
state.remove( "hint.optionsMenu" );
|
||||||
|
state.remove( "hint.themesPanel" );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showUIDefaultsInspector() {
|
||||||
|
FlatUIDefaultsInspector.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void newActionPerformed() {
|
||||||
|
NewDialog newDialog = new NewDialog( this );
|
||||||
|
newDialog.setVisible( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openActionPerformed() {
|
||||||
|
JFileChooser chooser = new JFileChooser();
|
||||||
|
chooser.showOpenDialog( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveAsActionPerformed() {
|
||||||
|
JFileChooser chooser = new JFileChooser();
|
||||||
|
chooser.showSaveDialog( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void exitActionPerformed() {
|
private void exitActionPerformed() {
|
||||||
@@ -110,6 +171,11 @@ class DemoFrame
|
|||||||
System.setProperty( "flatlaf.animatedLafChange", String.valueOf( animatedLafChangeMenuItem.isSelected() ) );
|
System.setProperty( "flatlaf.animatedLafChange", String.valueOf( animatedLafChangeMenuItem.isSelected() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showHintsChanged() {
|
||||||
|
clearHints();
|
||||||
|
showHints();
|
||||||
|
}
|
||||||
|
|
||||||
private void fontFamilyChanged( ActionEvent e ) {
|
private void fontFamilyChanged( ActionEvent e ) {
|
||||||
String fontFamily = e.getActionCommand();
|
String fontFamily = e.getActionCommand();
|
||||||
|
|
||||||
@@ -224,6 +290,7 @@ class DemoFrame
|
|||||||
JMenu fileMenu = new JMenu();
|
JMenu fileMenu = new JMenu();
|
||||||
JMenuItem newMenuItem = new JMenuItem();
|
JMenuItem newMenuItem = new JMenuItem();
|
||||||
JMenuItem openMenuItem = new JMenuItem();
|
JMenuItem openMenuItem = new JMenuItem();
|
||||||
|
JMenuItem saveAsMenuItem = new JMenuItem();
|
||||||
JMenuItem closeMenuItem = new JMenuItem();
|
JMenuItem closeMenuItem = new JMenuItem();
|
||||||
JMenuItem exitMenuItem = new JMenuItem();
|
JMenuItem exitMenuItem = new JMenuItem();
|
||||||
JMenu editMenu = new JMenu();
|
JMenu editMenu = new JMenu();
|
||||||
@@ -243,6 +310,7 @@ class DemoFrame
|
|||||||
JMenuItem projectViewMenuItem = new JMenuItem();
|
JMenuItem projectViewMenuItem = new JMenuItem();
|
||||||
JMenuItem structureViewMenuItem = new JMenuItem();
|
JMenuItem structureViewMenuItem = new JMenuItem();
|
||||||
JMenuItem propertiesViewMenuItem = new JMenuItem();
|
JMenuItem propertiesViewMenuItem = new JMenuItem();
|
||||||
|
JMenuItem menuItem2 = new JMenuItem();
|
||||||
JMenuItem menuItem1 = new JMenuItem();
|
JMenuItem menuItem1 = new JMenuItem();
|
||||||
JRadioButtonMenuItem radioButtonMenuItem1 = new JRadioButtonMenuItem();
|
JRadioButtonMenuItem radioButtonMenuItem1 = new JRadioButtonMenuItem();
|
||||||
JRadioButtonMenuItem radioButtonMenuItem2 = new JRadioButtonMenuItem();
|
JRadioButtonMenuItem radioButtonMenuItem2 = new JRadioButtonMenuItem();
|
||||||
@@ -251,12 +319,14 @@ class DemoFrame
|
|||||||
JMenuItem restoreFontMenuItem = new JMenuItem();
|
JMenuItem restoreFontMenuItem = new JMenuItem();
|
||||||
JMenuItem incrFontMenuItem = new JMenuItem();
|
JMenuItem incrFontMenuItem = new JMenuItem();
|
||||||
JMenuItem decrFontMenuItem = new JMenuItem();
|
JMenuItem decrFontMenuItem = new JMenuItem();
|
||||||
JMenu optionsMenu = new JMenu();
|
optionsMenu = new JMenu();
|
||||||
windowDecorationsCheckBoxMenuItem = new JCheckBoxMenuItem();
|
windowDecorationsCheckBoxMenuItem = new JCheckBoxMenuItem();
|
||||||
menuBarEmbeddedCheckBoxMenuItem = new JCheckBoxMenuItem();
|
menuBarEmbeddedCheckBoxMenuItem = new JCheckBoxMenuItem();
|
||||||
underlineMenuSelectionMenuItem = new JCheckBoxMenuItem();
|
underlineMenuSelectionMenuItem = new JCheckBoxMenuItem();
|
||||||
alwaysShowMnemonicsMenuItem = new JCheckBoxMenuItem();
|
alwaysShowMnemonicsMenuItem = new JCheckBoxMenuItem();
|
||||||
animatedLafChangeMenuItem = new JCheckBoxMenuItem();
|
animatedLafChangeMenuItem = new JCheckBoxMenuItem();
|
||||||
|
JMenuItem showHintsMenuItem = new JMenuItem();
|
||||||
|
JMenuItem showUIDefaultsInspectorMenuItem = new JMenuItem();
|
||||||
JMenu helpMenu = new JMenu();
|
JMenu helpMenu = new JMenu();
|
||||||
JMenuItem aboutMenuItem = new JMenuItem();
|
JMenuItem aboutMenuItem = new JMenuItem();
|
||||||
JToolBar toolBar1 = new JToolBar();
|
JToolBar toolBar1 = new JToolBar();
|
||||||
@@ -276,7 +346,7 @@ class DemoFrame
|
|||||||
OptionPanePanel optionPanePanel = new OptionPanePanel();
|
OptionPanePanel optionPanePanel = new OptionPanePanel();
|
||||||
ExtrasPanel extrasPanel1 = new ExtrasPanel();
|
ExtrasPanel extrasPanel1 = new ExtrasPanel();
|
||||||
controlBar = new ControlBar();
|
controlBar = new ControlBar();
|
||||||
IJThemesPanel themesPanel = new IJThemesPanel();
|
themesPanel = new IJThemesPanel();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setTitle("FlatLaf Demo");
|
setTitle("FlatLaf Demo");
|
||||||
@@ -296,15 +366,22 @@ class DemoFrame
|
|||||||
newMenuItem.setText("New");
|
newMenuItem.setText("New");
|
||||||
newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
newMenuItem.setMnemonic('N');
|
newMenuItem.setMnemonic('N');
|
||||||
newMenuItem.addActionListener(e -> menuItemActionPerformed(e));
|
newMenuItem.addActionListener(e -> newActionPerformed());
|
||||||
fileMenu.add(newMenuItem);
|
fileMenu.add(newMenuItem);
|
||||||
|
|
||||||
//---- openMenuItem ----
|
//---- openMenuItem ----
|
||||||
openMenuItem.setText("Open");
|
openMenuItem.setText("Open...");
|
||||||
openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
openMenuItem.setMnemonic('O');
|
openMenuItem.setMnemonic('O');
|
||||||
openMenuItem.addActionListener(e -> menuItemActionPerformed(e));
|
openMenuItem.addActionListener(e -> openActionPerformed());
|
||||||
fileMenu.add(openMenuItem);
|
fileMenu.add(openMenuItem);
|
||||||
|
|
||||||
|
//---- saveAsMenuItem ----
|
||||||
|
saveAsMenuItem.setText("Save As...");
|
||||||
|
saveAsMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
|
saveAsMenuItem.setMnemonic('S');
|
||||||
|
saveAsMenuItem.addActionListener(e -> saveAsActionPerformed());
|
||||||
|
fileMenu.add(saveAsMenuItem);
|
||||||
fileMenu.addSeparator();
|
fileMenu.addSeparator();
|
||||||
|
|
||||||
//---- closeMenuItem ----
|
//---- closeMenuItem ----
|
||||||
@@ -435,6 +512,11 @@ class DemoFrame
|
|||||||
}
|
}
|
||||||
viewMenu.add(menu1);
|
viewMenu.add(menu1);
|
||||||
|
|
||||||
|
//---- menuItem2 ----
|
||||||
|
menuItem2.setText("Disabled Item");
|
||||||
|
menuItem2.setEnabled(false);
|
||||||
|
viewMenu.add(menuItem2);
|
||||||
|
|
||||||
//---- menuItem1 ----
|
//---- menuItem1 ----
|
||||||
menuItem1.setText("<html>some <b color=\"red\">HTML</b> <i color=\"blue\">text</i></html>");
|
menuItem1.setText("<html>some <b color=\"red\">HTML</b> <i color=\"blue\">text</i></html>");
|
||||||
viewMenu.add(menuItem1);
|
viewMenu.add(menuItem1);
|
||||||
@@ -516,6 +598,16 @@ class DemoFrame
|
|||||||
animatedLafChangeMenuItem.setSelected(true);
|
animatedLafChangeMenuItem.setSelected(true);
|
||||||
animatedLafChangeMenuItem.addActionListener(e -> animatedLafChangeChanged());
|
animatedLafChangeMenuItem.addActionListener(e -> animatedLafChangeChanged());
|
||||||
optionsMenu.add(animatedLafChangeMenuItem);
|
optionsMenu.add(animatedLafChangeMenuItem);
|
||||||
|
|
||||||
|
//---- showHintsMenuItem ----
|
||||||
|
showHintsMenuItem.setText("Show hints");
|
||||||
|
showHintsMenuItem.addActionListener(e -> showHintsChanged());
|
||||||
|
optionsMenu.add(showHintsMenuItem);
|
||||||
|
|
||||||
|
//---- showUIDefaultsInspectorMenuItem ----
|
||||||
|
showUIDefaultsInspectorMenuItem.setText("Show UI Defaults Inspector");
|
||||||
|
showUIDefaultsInspectorMenuItem.addActionListener(e -> showUIDefaultsInspector());
|
||||||
|
optionsMenu.add(showUIDefaultsInspectorMenuItem);
|
||||||
}
|
}
|
||||||
menuBar1.add(optionsMenu);
|
menuBar1.add(optionsMenu);
|
||||||
|
|
||||||
@@ -627,10 +719,23 @@ class DemoFrame
|
|||||||
.getSupportsWindowDecorations() || JBRCustomDecorations.isSupported();
|
.getSupportsWindowDecorations() || JBRCustomDecorations.isSupported();
|
||||||
windowDecorationsCheckBoxMenuItem.setEnabled( supportsWindowDecorations && !JBRCustomDecorations.isSupported() );
|
windowDecorationsCheckBoxMenuItem.setEnabled( supportsWindowDecorations && !JBRCustomDecorations.isSupported() );
|
||||||
menuBarEmbeddedCheckBoxMenuItem.setEnabled( supportsWindowDecorations );
|
menuBarEmbeddedCheckBoxMenuItem.setEnabled( supportsWindowDecorations );
|
||||||
|
|
||||||
|
// remove contentPanel bottom insets
|
||||||
|
MigLayout layout = (MigLayout) contentPanel.getLayout();
|
||||||
|
LC lc = ConstraintParser.parseLayoutConstraint( (String) layout.getLayoutConstraints() );
|
||||||
|
UnitValue[] insets = lc.getInsets();
|
||||||
|
lc.setInsets( new UnitValue[] {
|
||||||
|
insets[0],
|
||||||
|
insets[1],
|
||||||
|
new UnitValue( 0, UnitValue.PIXEL, null ),
|
||||||
|
insets[3]
|
||||||
|
} );
|
||||||
|
layout.setLayoutConstraints( lc );
|
||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
private JMenu fontMenu;
|
private JMenu fontMenu;
|
||||||
|
private JMenu optionsMenu;
|
||||||
private JCheckBoxMenuItem windowDecorationsCheckBoxMenuItem;
|
private JCheckBoxMenuItem windowDecorationsCheckBoxMenuItem;
|
||||||
private JCheckBoxMenuItem menuBarEmbeddedCheckBoxMenuItem;
|
private JCheckBoxMenuItem menuBarEmbeddedCheckBoxMenuItem;
|
||||||
private JCheckBoxMenuItem underlineMenuSelectionMenuItem;
|
private JCheckBoxMenuItem underlineMenuSelectionMenuItem;
|
||||||
@@ -638,5 +743,6 @@ class DemoFrame
|
|||||||
private JCheckBoxMenuItem animatedLafChangeMenuItem;
|
private JCheckBoxMenuItem animatedLafChangeMenuItem;
|
||||||
private JTabbedPane tabbedPane;
|
private JTabbedPane tabbedPane;
|
||||||
private ControlBar controlBar;
|
private ControlBar controlBar;
|
||||||
|
private IJThemesPanel themesPanel;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.2.0.298" Java: "14.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -114,6 +114,9 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
add( new FormComponent( "com.formdev.flatlaf.demo.intellijthemes.IJThemesPanel" ) {
|
add( new FormComponent( "com.formdev.flatlaf.demo.intellijthemes.IJThemesPanel" ) {
|
||||||
name: "themesPanel"
|
name: "themesPanel"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
}, new FormLayoutConstraints( class java.lang.String ) {
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
"value": "East"
|
"value": "East"
|
||||||
} )
|
} )
|
||||||
@@ -128,14 +131,21 @@ new FormModel {
|
|||||||
"text": "New"
|
"text": "New"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 78, 4226, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 78, 4226, false )
|
||||||
"mnemonic": 78
|
"mnemonic": 78
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "newActionPerformed", false ) )
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "openMenuItem"
|
name: "openMenuItem"
|
||||||
"text": "Open"
|
"text": "Open..."
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 79, 4226, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 79, 4226, false )
|
||||||
"mnemonic": 79
|
"mnemonic": 79
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "openActionPerformed", false ) )
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "saveAsMenuItem"
|
||||||
|
"text": "Save As..."
|
||||||
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 83, 4226, false )
|
||||||
|
"mnemonic": 83
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "saveAsActionPerformed", false ) )
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
||||||
name: "separator2"
|
name: "separator2"
|
||||||
@@ -264,6 +274,11 @@ new FormModel {
|
|||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
|
||||||
} )
|
} )
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem2"
|
||||||
|
"text": "Disabled Item"
|
||||||
|
"enabled": false
|
||||||
|
} )
|
||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "menuItem1"
|
name: "menuItem1"
|
||||||
"text": "<html>some <b color=\"red\">HTML</b> <i color=\"blue\">text</i></html>"
|
"text": "<html>some <b color=\"red\">HTML</b> <i color=\"blue\">text</i></html>"
|
||||||
@@ -322,6 +337,9 @@ new FormModel {
|
|||||||
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
||||||
name: "optionsMenu"
|
name: "optionsMenu"
|
||||||
"text": "Options"
|
"text": "Options"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
add( new FormComponent( "javax.swing.JCheckBoxMenuItem" ) {
|
add( new FormComponent( "javax.swing.JCheckBoxMenuItem" ) {
|
||||||
name: "windowDecorationsCheckBoxMenuItem"
|
name: "windowDecorationsCheckBoxMenuItem"
|
||||||
"text": "Window decorations"
|
"text": "Window decorations"
|
||||||
@@ -365,6 +383,16 @@ new FormModel {
|
|||||||
}
|
}
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "animatedLafChangeChanged", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "animatedLafChangeChanged", false ) )
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "showHintsMenuItem"
|
||||||
|
"text": "Show hints"
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showHintsChanged", false ) )
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "showUIDefaultsInspectorMenuItem"
|
||||||
|
"text": "Show UI Defaults Inspector"
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showUIDefaultsInspector", false ) )
|
||||||
|
} )
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
||||||
name: "helpMenu"
|
name: "helpMenu"
|
||||||
|
|||||||
@@ -16,10 +16,13 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.demo;
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
import javax.swing.JDialog;
|
import javax.swing.JDialog;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
import com.formdev.flatlaf.extras.FlatInspector;
|
import com.formdev.flatlaf.extras.FlatInspector;
|
||||||
|
import com.formdev.flatlaf.extras.FlatUIDefaultsInspector;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,6 +33,8 @@ public class FlatLafDemo
|
|||||||
static final String PREFS_ROOT_PATH = "/flatlaf-demo";
|
static final String PREFS_ROOT_PATH = "/flatlaf-demo";
|
||||||
static final String KEY_TAB = "tab";
|
static final String KEY_TAB = "tab";
|
||||||
|
|
||||||
|
static boolean screenshotsMode = Boolean.parseBoolean( System.getProperty( "flatlaf.demo.screenshotsMode" ) );
|
||||||
|
|
||||||
public static void main( String[] args ) {
|
public static void main( String[] args ) {
|
||||||
// on macOS enable screen menu bar
|
// on macOS enable screen menu bar
|
||||||
if( SystemInfo.isMacOS && System.getProperty( "apple.laf.useScreenMenuBar" ) == null )
|
if( SystemInfo.isMacOS && System.getProperty( "apple.laf.useScreenMenuBar" ) == null )
|
||||||
@@ -42,15 +47,22 @@ public class FlatLafDemo
|
|||||||
JFrame.setDefaultLookAndFeelDecorated( true );
|
JFrame.setDefaultLookAndFeelDecorated( true );
|
||||||
JDialog.setDefaultLookAndFeelDecorated( true );
|
JDialog.setDefaultLookAndFeelDecorated( true );
|
||||||
|
|
||||||
|
// application specific UI defaults
|
||||||
|
FlatLaf.registerCustomDefaultsSource( "com.formdev.flatlaf.demo" );
|
||||||
|
|
||||||
// set look and feel
|
// set look and feel
|
||||||
DemoPrefs.initLaf( args );
|
DemoPrefs.initLaf( args );
|
||||||
|
|
||||||
// install inspector
|
// install inspectors
|
||||||
FlatInspector.install( "ctrl shift alt X" );
|
FlatInspector.install( "ctrl shift alt X" );
|
||||||
|
FlatUIDefaultsInspector.install( "ctrl shift alt Y" );
|
||||||
|
|
||||||
// create frame
|
// create frame
|
||||||
DemoFrame frame = new DemoFrame();
|
DemoFrame frame = new DemoFrame();
|
||||||
|
|
||||||
|
if( FlatLafDemo.screenshotsMode )
|
||||||
|
frame.setPreferredSize( new Dimension( 1280, 620 ) );
|
||||||
|
|
||||||
// show frame
|
// show frame
|
||||||
frame.pack();
|
frame.pack();
|
||||||
frame.setLocationRelativeTo( null );
|
frame.setLocationRelativeTo( null );
|
||||||
|
|||||||
@@ -0,0 +1,219 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.swing.*;
|
||||||
|
import com.formdev.flatlaf.ui.FlatDropShadowBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatPopupMenuBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class HintManager
|
||||||
|
{
|
||||||
|
private static final List<HintPanel> hintPanels = new ArrayList<>();
|
||||||
|
|
||||||
|
static void showHint( Hint hint ) {
|
||||||
|
// check whether user already closed the hint
|
||||||
|
if( DemoPrefs.getState().getBoolean( hint.prefsKey, false ) ) {
|
||||||
|
if( hint.nextHint != null )
|
||||||
|
showHint( hint.nextHint );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HintPanel hintPanel = new HintPanel( hint );
|
||||||
|
hintPanel.showHint();
|
||||||
|
|
||||||
|
hintPanels.add( hintPanel );
|
||||||
|
}
|
||||||
|
|
||||||
|
static void hideAllHints() {
|
||||||
|
HintPanel[] hintPanels2 = hintPanels.toArray( new HintPanel[hintPanels.size()] );
|
||||||
|
for( HintPanel hintPanel : hintPanels2 )
|
||||||
|
hintPanel.hideHint();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class HintPanel ----------------------------------------------------
|
||||||
|
|
||||||
|
static class Hint
|
||||||
|
{
|
||||||
|
private final String message;
|
||||||
|
private final Component owner;
|
||||||
|
private final int position;
|
||||||
|
private final String prefsKey;
|
||||||
|
private final Hint nextHint;
|
||||||
|
|
||||||
|
Hint( String message, Component owner, int position, String prefsKey, Hint nextHint ) {
|
||||||
|
this.message = message;
|
||||||
|
this.owner = owner;
|
||||||
|
this.position = position;
|
||||||
|
this.prefsKey = prefsKey;
|
||||||
|
this.nextHint = nextHint;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class HintPanel ----------------------------------------------------
|
||||||
|
|
||||||
|
private static class HintPanel
|
||||||
|
extends JPanel
|
||||||
|
{
|
||||||
|
private final Hint hint;
|
||||||
|
|
||||||
|
private JPanel popup;
|
||||||
|
|
||||||
|
private HintPanel( Hint hint ) {
|
||||||
|
this.hint = hint;
|
||||||
|
|
||||||
|
initComponents();
|
||||||
|
|
||||||
|
hintLabel.setText( "<html>" + hint.message + "</html>" );
|
||||||
|
|
||||||
|
// grab all mouse events to avoid that components overlapped
|
||||||
|
// by the hint panel receive them
|
||||||
|
addMouseListener( new MouseAdapter() {} );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUI() {
|
||||||
|
super.updateUI();
|
||||||
|
|
||||||
|
setBackground( UIManager.getColor( "HintPanel.backgroundColor" ) );
|
||||||
|
setBorder( new FlatPopupMenuBorder() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void showHint() {
|
||||||
|
JRootPane rootPane = SwingUtilities.getRootPane( hint.owner );
|
||||||
|
if( rootPane == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
JLayeredPane layeredPane = rootPane.getLayeredPane();
|
||||||
|
|
||||||
|
// create a popup panel that has a drop shadow
|
||||||
|
popup = new JPanel( new BorderLayout() ) {
|
||||||
|
@Override
|
||||||
|
public void updateUI() {
|
||||||
|
super.updateUI();
|
||||||
|
|
||||||
|
setBorder( new FlatDropShadowBorder(
|
||||||
|
UIManager.getColor( "Popup.dropShadowColor" ),
|
||||||
|
UIManager.getInsets( "Popup.dropShadowInsets" ),
|
||||||
|
FlatUIUtils.getUIFloat( "Popup.dropShadowOpacity", 0.5f ) ) );
|
||||||
|
|
||||||
|
// use invokeLater because at this time the UI delegates
|
||||||
|
// of child components are not yet updated
|
||||||
|
EventQueue.invokeLater( () -> {
|
||||||
|
validate();
|
||||||
|
setSize( getPreferredSize() );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
popup.setOpaque( false );
|
||||||
|
popup.add( this );
|
||||||
|
|
||||||
|
// calculate x/y location for hint popup
|
||||||
|
Point pt = SwingUtilities.convertPoint( hint.owner, 0, 0, layeredPane );
|
||||||
|
int x = pt.x;
|
||||||
|
int y = pt.y;
|
||||||
|
Dimension size = popup.getPreferredSize();
|
||||||
|
int gap = UIScale.scale( 6 );
|
||||||
|
|
||||||
|
switch( hint.position ) {
|
||||||
|
case SwingConstants.LEFT:
|
||||||
|
x -= size.width + gap;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SwingConstants.TOP:
|
||||||
|
y -= size.height + gap;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SwingConstants.RIGHT:
|
||||||
|
x += hint.owner.getWidth() + gap;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SwingConstants.BOTTOM:
|
||||||
|
y += hint.owner.getHeight() + gap;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set hint popup size and show it
|
||||||
|
popup.setBounds( x, y, size.width, size.height );
|
||||||
|
layeredPane.add( popup, JLayeredPane.POPUP_LAYER );
|
||||||
|
}
|
||||||
|
|
||||||
|
void hideHint() {
|
||||||
|
if( popup != null ) {
|
||||||
|
Container parent = popup.getParent();
|
||||||
|
if( parent != null ) {
|
||||||
|
parent.remove( popup );
|
||||||
|
parent.repaint( popup.getX(), popup.getY(), popup.getWidth(), popup.getHeight() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hintPanels.remove( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void gotIt() {
|
||||||
|
// hide hint
|
||||||
|
hideHint();
|
||||||
|
|
||||||
|
// remember that user closed the hint
|
||||||
|
DemoPrefs.getState().putBoolean( hint.prefsKey, true );
|
||||||
|
|
||||||
|
// show next hint (if any)
|
||||||
|
if( hint.nextHint != null )
|
||||||
|
HintManager.showHint( hint.nextHint );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents() {
|
||||||
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
|
hintLabel = new JLabel();
|
||||||
|
gotItButton = new JButton();
|
||||||
|
|
||||||
|
//======== this ========
|
||||||
|
setLayout(new MigLayout(
|
||||||
|
"insets dialog,hidemode 3",
|
||||||
|
// columns
|
||||||
|
"[::200,fill]",
|
||||||
|
// rows
|
||||||
|
"[]para" +
|
||||||
|
"[]"));
|
||||||
|
|
||||||
|
//---- hintLabel ----
|
||||||
|
hintLabel.setText("hint");
|
||||||
|
add(hintLabel, "cell 0 0");
|
||||||
|
|
||||||
|
//---- gotItButton ----
|
||||||
|
gotItButton.setText("Got it!");
|
||||||
|
gotItButton.setFocusable(false);
|
||||||
|
gotItButton.addActionListener(e -> gotIt());
|
||||||
|
add(gotItButton, "cell 0 1,alignx right,growx 0");
|
||||||
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
}
|
||||||
|
|
||||||
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
private JLabel hintLabel;
|
||||||
|
private JButton gotItButton;
|
||||||
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
|
new FormModel {
|
||||||
|
contentType: "form/swing"
|
||||||
|
root: new FormRoot {
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
|
"$columnConstraints": "[::200,fill]"
|
||||||
|
"$rowConstraints": "[]para[]"
|
||||||
|
} ) {
|
||||||
|
name: "panel"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.className": "HintPanel"
|
||||||
|
}
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "hintLabel"
|
||||||
|
"text": "hint"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "gotItButton"
|
||||||
|
"text": "Got it!"
|
||||||
|
"focusable": false
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "gotIt", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 1,alignx right,growx 0"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 0 )
|
||||||
|
"size": new java.awt.Dimension( 400, 300 )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -59,7 +59,6 @@ class MoreComponentsPanel
|
|||||||
JSeparator separator2 = new JSeparator();
|
JSeparator separator2 = new JSeparator();
|
||||||
JSlider slider2 = new JSlider();
|
JSlider slider2 = new JSlider();
|
||||||
JSlider slider4 = new JSlider();
|
JSlider slider4 = new JSlider();
|
||||||
JScrollPane scrollPane14 = new JScrollPane();
|
|
||||||
progressBar3 = new JProgressBar();
|
progressBar3 = new JProgressBar();
|
||||||
progressBar4 = new JProgressBar();
|
progressBar4 = new JProgressBar();
|
||||||
JToolBar toolBar2 = new JToolBar();
|
JToolBar toolBar2 = new JToolBar();
|
||||||
@@ -67,11 +66,12 @@ class MoreComponentsPanel
|
|||||||
JButton button10 = new JButton();
|
JButton button10 = new JButton();
|
||||||
JButton button11 = new JButton();
|
JButton button11 = new JButton();
|
||||||
JToggleButton toggleButton7 = new JToggleButton();
|
JToggleButton toggleButton7 = new JToggleButton();
|
||||||
|
JPanel panel2 = new JPanel();
|
||||||
JLabel scrollBarLabel = new JLabel();
|
JLabel scrollBarLabel = new JLabel();
|
||||||
JScrollBar scrollBar1 = new JScrollBar();
|
JScrollBar scrollBar1 = new JScrollBar();
|
||||||
JLabel label4 = new JLabel();
|
|
||||||
JScrollBar scrollBar4 = new JScrollBar();
|
JScrollBar scrollBar4 = new JScrollBar();
|
||||||
JPanel panel3 = new JPanel();
|
JPanel panel3 = new JPanel();
|
||||||
|
JLabel label4 = new JLabel();
|
||||||
JLabel label3 = new JLabel();
|
JLabel label3 = new JLabel();
|
||||||
JScrollPane scrollPane15 = new JScrollPane();
|
JScrollPane scrollPane15 = new JScrollPane();
|
||||||
JEditorPane editorPane6 = new JEditorPane();
|
JEditorPane editorPane6 = new JEditorPane();
|
||||||
@@ -81,7 +81,6 @@ class MoreComponentsPanel
|
|||||||
JScrollBar scrollBar6 = new JScrollBar();
|
JScrollBar scrollBar6 = new JScrollBar();
|
||||||
JLabel separatorLabel = new JLabel();
|
JLabel separatorLabel = new JLabel();
|
||||||
JSeparator separator1 = new JSeparator();
|
JSeparator separator1 = new JSeparator();
|
||||||
JPanel panel2 = new JPanel();
|
|
||||||
JLabel sliderLabel = new JLabel();
|
JLabel sliderLabel = new JLabel();
|
||||||
JSlider slider1 = new JSlider();
|
JSlider slider1 = new JSlider();
|
||||||
JSlider slider6 = new JSlider();
|
JSlider slider6 = new JSlider();
|
||||||
@@ -105,13 +104,12 @@ class MoreComponentsPanel
|
|||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
"hidemode 3",
|
"insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
|
||||||
"[]",
|
"[]",
|
||||||
// rows
|
// rows
|
||||||
"[]" +
|
"[]" +
|
||||||
@@ -142,7 +140,7 @@ class MoreComponentsPanel
|
|||||||
}
|
}
|
||||||
scrollPane13.setViewportView(panel1);
|
scrollPane13.setViewportView(panel1);
|
||||||
}
|
}
|
||||||
add(scrollPane13, "cell 1 0,grow,width 70,height 70");
|
add(scrollPane13, "cell 1 0,grow,width 70,height 40");
|
||||||
add(scrollBar2, "cell 2 0 1 6,growy");
|
add(scrollBar2, "cell 2 0 1 6,growy");
|
||||||
|
|
||||||
//---- scrollBar3 ----
|
//---- scrollBar3 ----
|
||||||
@@ -165,7 +163,7 @@ class MoreComponentsPanel
|
|||||||
//---- slider2 ----
|
//---- slider2 ----
|
||||||
slider2.setOrientation(SwingConstants.VERTICAL);
|
slider2.setOrientation(SwingConstants.VERTICAL);
|
||||||
slider2.setValue(30);
|
slider2.setValue(30);
|
||||||
add(slider2, "cell 2 0 1 6,growy");
|
add(slider2, "cell 2 0 1 6,growy,height 100");
|
||||||
|
|
||||||
//---- slider4 ----
|
//---- slider4 ----
|
||||||
slider4.setMinorTickSpacing(10);
|
slider4.setMinorTickSpacing(10);
|
||||||
@@ -174,19 +172,18 @@ class MoreComponentsPanel
|
|||||||
slider4.setPaintLabels(true);
|
slider4.setPaintLabels(true);
|
||||||
slider4.setOrientation(SwingConstants.VERTICAL);
|
slider4.setOrientation(SwingConstants.VERTICAL);
|
||||||
slider4.setValue(30);
|
slider4.setValue(30);
|
||||||
add(slider4, "cell 2 0 1 6,growy");
|
add(slider4, "cell 2 0 1 6,growy,height 100");
|
||||||
add(scrollPane14, "cell 3 0,grow");
|
|
||||||
|
|
||||||
//---- progressBar3 ----
|
//---- progressBar3 ----
|
||||||
progressBar3.setOrientation(SwingConstants.VERTICAL);
|
progressBar3.setOrientation(SwingConstants.VERTICAL);
|
||||||
progressBar3.setValue(60);
|
progressBar3.setValue(60);
|
||||||
add(progressBar3, "cell 4 0 1 6,growy");
|
add(progressBar3, "cell 2 0 1 6,growy");
|
||||||
|
|
||||||
//---- progressBar4 ----
|
//---- progressBar4 ----
|
||||||
progressBar4.setOrientation(SwingConstants.VERTICAL);
|
progressBar4.setOrientation(SwingConstants.VERTICAL);
|
||||||
progressBar4.setValue(60);
|
progressBar4.setValue(60);
|
||||||
progressBar4.setStringPainted(true);
|
progressBar4.setStringPainted(true);
|
||||||
add(progressBar4, "cell 4 0 1 6,growy");
|
add(progressBar4, "cell 2 0 1 6,growy");
|
||||||
|
|
||||||
//======== toolBar2 ========
|
//======== toolBar2 ========
|
||||||
{
|
{
|
||||||
@@ -209,7 +206,14 @@ class MoreComponentsPanel
|
|||||||
toggleButton7.setIcon(UIManager.getIcon("Tree.closedIcon"));
|
toggleButton7.setIcon(UIManager.getIcon("Tree.closedIcon"));
|
||||||
toolBar2.add(toggleButton7);
|
toolBar2.add(toggleButton7);
|
||||||
}
|
}
|
||||||
add(toolBar2, "cell 4 0 1 6,growy");
|
add(toolBar2, "cell 2 0 1 6,growy");
|
||||||
|
|
||||||
|
//======== panel2 ========
|
||||||
|
{
|
||||||
|
panel2.setBorder(new TitledBorder("TitledBorder"));
|
||||||
|
panel2.setLayout(new FlowLayout());
|
||||||
|
}
|
||||||
|
add(panel2, "cell 3 0 1 6,grow");
|
||||||
|
|
||||||
//---- scrollBarLabel ----
|
//---- scrollBarLabel ----
|
||||||
scrollBarLabel.setText("JScrollBar:");
|
scrollBarLabel.setText("JScrollBar:");
|
||||||
@@ -219,10 +223,6 @@ class MoreComponentsPanel
|
|||||||
scrollBar1.setOrientation(Adjustable.HORIZONTAL);
|
scrollBar1.setOrientation(Adjustable.HORIZONTAL);
|
||||||
add(scrollBar1, "cell 1 1,growx");
|
add(scrollBar1, "cell 1 1,growx");
|
||||||
|
|
||||||
//---- label4 ----
|
|
||||||
label4.setText("HTML:");
|
|
||||||
add(label4, "cell 5 1");
|
|
||||||
|
|
||||||
//---- scrollBar4 ----
|
//---- scrollBar4 ----
|
||||||
scrollBar4.setOrientation(Adjustable.HORIZONTAL);
|
scrollBar4.setOrientation(Adjustable.HORIZONTAL);
|
||||||
scrollBar4.setEnabled(false);
|
scrollBar4.setEnabled(false);
|
||||||
@@ -238,11 +238,16 @@ class MoreComponentsPanel
|
|||||||
// rows
|
// rows
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
|
"[]" +
|
||||||
"[]"));
|
"[]"));
|
||||||
|
|
||||||
|
//---- label4 ----
|
||||||
|
label4.setText("HTML:");
|
||||||
|
panel3.add(label4, "cell 0 0");
|
||||||
|
|
||||||
//---- label3 ----
|
//---- label3 ----
|
||||||
label3.setText("<html>JLabel HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a></html>");
|
label3.setText("<html>JLabel HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a></html>");
|
||||||
panel3.add(label3, "cell 0 0");
|
panel3.add(label3, "cell 0 1");
|
||||||
|
|
||||||
//======== scrollPane15 ========
|
//======== scrollPane15 ========
|
||||||
{
|
{
|
||||||
@@ -252,7 +257,7 @@ class MoreComponentsPanel
|
|||||||
editorPane6.setText("JEditorPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>");
|
editorPane6.setText("JEditorPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>");
|
||||||
scrollPane15.setViewportView(editorPane6);
|
scrollPane15.setViewportView(editorPane6);
|
||||||
}
|
}
|
||||||
panel3.add(scrollPane15, "cell 0 1,grow");
|
panel3.add(scrollPane15, "cell 0 2,grow");
|
||||||
|
|
||||||
//======== scrollPane16 ========
|
//======== scrollPane16 ========
|
||||||
{
|
{
|
||||||
@@ -262,9 +267,9 @@ class MoreComponentsPanel
|
|||||||
textPane6.setText("JTextPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>");
|
textPane6.setText("JTextPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>");
|
||||||
scrollPane16.setViewportView(textPane6);
|
scrollPane16.setViewportView(textPane6);
|
||||||
}
|
}
|
||||||
panel3.add(scrollPane16, "cell 0 2,grow");
|
panel3.add(scrollPane16, "cell 0 3,grow");
|
||||||
}
|
}
|
||||||
add(panel3, "cell 5 2 1 9,aligny top,growy 0");
|
add(panel3, "cell 4 0 1 8,aligny top,growy 0");
|
||||||
|
|
||||||
//---- scrollBar5 ----
|
//---- scrollBar5 ----
|
||||||
scrollBar5.setOrientation(Adjustable.HORIZONTAL);
|
scrollBar5.setOrientation(Adjustable.HORIZONTAL);
|
||||||
@@ -282,13 +287,6 @@ class MoreComponentsPanel
|
|||||||
add(separatorLabel, "cell 0 5");
|
add(separatorLabel, "cell 0 5");
|
||||||
add(separator1, "cell 1 5,growx");
|
add(separator1, "cell 1 5,growx");
|
||||||
|
|
||||||
//======== panel2 ========
|
|
||||||
{
|
|
||||||
panel2.setBorder(new TitledBorder("TitledBorder"));
|
|
||||||
panel2.setLayout(new FlowLayout());
|
|
||||||
}
|
|
||||||
add(panel2, "cell 3 5,grow");
|
|
||||||
|
|
||||||
//---- sliderLabel ----
|
//---- sliderLabel ----
|
||||||
sliderLabel.setText("JSlider:");
|
sliderLabel.setText("JSlider:");
|
||||||
add(sliderLabel, "cell 0 6");
|
add(sliderLabel, "cell 0 6");
|
||||||
@@ -389,6 +387,17 @@ class MoreComponentsPanel
|
|||||||
}
|
}
|
||||||
add(toolBar1, "cell 1 10 3 1,growx");
|
add(toolBar1, "cell 1 10 3 1,growx");
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
|
||||||
|
if( FlatLafDemo.screenshotsMode ) {
|
||||||
|
Component[] components = new Component[] {
|
||||||
|
indeterminateCheckBox,
|
||||||
|
toolTipLabel, toolTip1, toolTip2,
|
||||||
|
toolBarLabel, toolBar1, toolBar2,
|
||||||
|
};
|
||||||
|
|
||||||
|
for( Component c : components )
|
||||||
|
c.setVisible( false );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -7,8 +7,8 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.defaultVariableLocal": true
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][][][][][]"
|
"$columnConstraints": "[][][][][]"
|
||||||
"$rowConstraints": "[][][][][][][][][][][]"
|
"$rowConstraints": "[][][][][][][][][][][]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
@@ -27,7 +27,7 @@ new FormModel {
|
|||||||
"preferredSize": new java.awt.Dimension( 200, 200 )
|
"preferredSize": new java.awt.Dimension( 200, 200 )
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 0,grow,width 70,height 70"
|
"value": "cell 1 0,grow,width 70,height 40"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
||||||
name: "scrollBar2"
|
name: "scrollBar2"
|
||||||
@@ -64,7 +64,7 @@ new FormModel {
|
|||||||
"orientation": 1
|
"orientation": 1
|
||||||
"value": 30
|
"value": 30
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 0 1 6,growy"
|
"value": "cell 2 0 1 6,growy,height 100"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JSlider" ) {
|
add( new FormComponent( "javax.swing.JSlider" ) {
|
||||||
name: "slider4"
|
name: "slider4"
|
||||||
@@ -75,12 +75,7 @@ new FormModel {
|
|||||||
"orientation": 1
|
"orientation": 1
|
||||||
"value": 30
|
"value": 30
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 0 1 6,growy"
|
"value": "cell 2 0 1 6,growy,height 100"
|
||||||
} )
|
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
|
||||||
name: "scrollPane14"
|
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
|
||||||
"value": "cell 3 0,grow"
|
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JProgressBar" ) {
|
add( new FormComponent( "javax.swing.JProgressBar" ) {
|
||||||
name: "progressBar3"
|
name: "progressBar3"
|
||||||
@@ -90,7 +85,7 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 0 1 6,growy"
|
"value": "cell 2 0 1 6,growy"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JProgressBar" ) {
|
add( new FormComponent( "javax.swing.JProgressBar" ) {
|
||||||
name: "progressBar4"
|
name: "progressBar4"
|
||||||
@@ -101,7 +96,7 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 0 1 6,growy"
|
"value": "cell 2 0 1 6,growy"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JToolBar", new FormLayoutManager( class javax.swing.JToolBar ) ) {
|
add( new FormContainer( "javax.swing.JToolBar", new FormLayoutManager( class javax.swing.JToolBar ) ) {
|
||||||
name: "toolBar2"
|
name: "toolBar2"
|
||||||
@@ -126,7 +121,13 @@ new FormModel {
|
|||||||
"icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.closedIcon" )
|
"icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.closedIcon" )
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 0 1 6,growy"
|
"value": "cell 2 0 1 6,growy"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
||||||
|
name: "panel2"
|
||||||
|
"border": new javax.swing.border.TitledBorder( "TitledBorder" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 0 1 6,grow"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "scrollBarLabel"
|
name: "scrollBarLabel"
|
||||||
@@ -140,12 +141,6 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 1,growx"
|
"value": "cell 1 1,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label4"
|
|
||||||
"text": "HTML:"
|
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
|
||||||
"value": "cell 5 1"
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
||||||
name: "scrollBar4"
|
name: "scrollBar4"
|
||||||
"orientation": 0
|
"orientation": 0
|
||||||
@@ -155,16 +150,22 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$columnConstraints": "[]"
|
"$columnConstraints": "[]"
|
||||||
"$rowConstraints": "[][][]"
|
"$rowConstraints": "[][][][]"
|
||||||
"$layoutConstraints": "ltr,insets 0,hidemode 3"
|
"$layoutConstraints": "ltr,insets 0,hidemode 3"
|
||||||
} ) {
|
} ) {
|
||||||
name: "panel3"
|
name: "panel3"
|
||||||
"opaque": false
|
"opaque": false
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label4"
|
||||||
|
"text": "HTML:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "label3"
|
name: "label3"
|
||||||
"text": "<html>JLabel HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a></html>"
|
"text": "<html>JLabel HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a></html>"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 0"
|
"value": "cell 0 1"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane15"
|
name: "scrollPane15"
|
||||||
@@ -174,7 +175,7 @@ new FormModel {
|
|||||||
"text": "JEditorPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>"
|
"text": "JEditorPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 1,grow"
|
"value": "cell 0 2,grow"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
name: "scrollPane16"
|
name: "scrollPane16"
|
||||||
@@ -184,10 +185,10 @@ new FormModel {
|
|||||||
"text": "JTextPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>"
|
"text": "JTextPane HTML<br>Sample <b>content</b><br> <u>text</u> with <a href=\"#\">link</a>"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 0 2,grow"
|
"value": "cell 0 3,grow"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 5 2 1 9,aligny top,growy 0"
|
"value": "cell 4 0 1 8,aligny top,growy 0"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
add( new FormComponent( "javax.swing.JScrollBar" ) {
|
||||||
name: "scrollBar5"
|
name: "scrollBar5"
|
||||||
@@ -215,12 +216,6 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 5,growx"
|
"value": "cell 1 5,growx"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel2"
|
|
||||||
"border": new javax.swing.border.TitledBorder( "TitledBorder" )
|
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
|
||||||
"value": "cell 3 5,grow"
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "sliderLabel"
|
name: "sliderLabel"
|
||||||
"text": "JSlider:"
|
"text": "JSlider:"
|
||||||
@@ -365,7 +360,7 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 790, 715 )
|
"size": new java.awt.Dimension( 700, 420 )
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,393 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
import javax.swing.*;
|
||||||
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class NewDialog
|
||||||
|
extends JDialog
|
||||||
|
{
|
||||||
|
NewDialog( Window owner ) {
|
||||||
|
super( owner );
|
||||||
|
initComponents();
|
||||||
|
|
||||||
|
// hide menubar, which is here for testing
|
||||||
|
menuBar1.setVisible( false );
|
||||||
|
|
||||||
|
getRootPane().setDefaultButton( okButton );
|
||||||
|
|
||||||
|
// register ESC key to close frame
|
||||||
|
((JComponent)getContentPane()).registerKeyboardAction(
|
||||||
|
e -> dispose(),
|
||||||
|
KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0, false ),
|
||||||
|
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void okActionPerformed() {
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancelActionPerformed() {
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents() {
|
||||||
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
|
dialogPane = new JPanel();
|
||||||
|
contentPanel = new JPanel();
|
||||||
|
label1 = new JLabel();
|
||||||
|
textField1 = new JTextField();
|
||||||
|
label3 = new JLabel();
|
||||||
|
comboBox2 = new JComboBox<>();
|
||||||
|
label2 = new JLabel();
|
||||||
|
comboBox1 = new JComboBox<>();
|
||||||
|
buttonBar = new JPanel();
|
||||||
|
okButton = new JButton();
|
||||||
|
cancelButton = new JButton();
|
||||||
|
menuBar1 = new JMenuBar();
|
||||||
|
menu1 = new JMenu();
|
||||||
|
menuItem8 = new JMenuItem();
|
||||||
|
menuItem7 = new JMenuItem();
|
||||||
|
menuItem6 = new JMenuItem();
|
||||||
|
menuItem5 = new JMenuItem();
|
||||||
|
menuItem4 = new JMenuItem();
|
||||||
|
menuItem3 = new JMenuItem();
|
||||||
|
menuItem2 = new JMenuItem();
|
||||||
|
menuItem1 = new JMenuItem();
|
||||||
|
menu2 = new JMenu();
|
||||||
|
menuItem18 = new JMenuItem();
|
||||||
|
menuItem17 = new JMenuItem();
|
||||||
|
menuItem16 = new JMenuItem();
|
||||||
|
menuItem15 = new JMenuItem();
|
||||||
|
menuItem14 = new JMenuItem();
|
||||||
|
menuItem13 = new JMenuItem();
|
||||||
|
menuItem12 = new JMenuItem();
|
||||||
|
menuItem11 = new JMenuItem();
|
||||||
|
menuItem10 = new JMenuItem();
|
||||||
|
menuItem9 = new JMenuItem();
|
||||||
|
menu3 = new JMenu();
|
||||||
|
menuItem25 = new JMenuItem();
|
||||||
|
menuItem26 = new JMenuItem();
|
||||||
|
menuItem24 = new JMenuItem();
|
||||||
|
menuItem23 = new JMenuItem();
|
||||||
|
menuItem22 = new JMenuItem();
|
||||||
|
menuItem21 = new JMenuItem();
|
||||||
|
menuItem20 = new JMenuItem();
|
||||||
|
menuItem19 = new JMenuItem();
|
||||||
|
popupMenu1 = new JPopupMenu();
|
||||||
|
cutMenuItem = new JMenuItem();
|
||||||
|
copyMenuItem = new JMenuItem();
|
||||||
|
pasteMenuItem = new JMenuItem();
|
||||||
|
|
||||||
|
//======== this ========
|
||||||
|
setTitle("New");
|
||||||
|
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||||
|
setModal(true);
|
||||||
|
Container contentPane = getContentPane();
|
||||||
|
contentPane.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//======== dialogPane ========
|
||||||
|
{
|
||||||
|
dialogPane.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//======== contentPanel ========
|
||||||
|
{
|
||||||
|
contentPanel.setLayout(new MigLayout(
|
||||||
|
"insets dialog,hidemode 3",
|
||||||
|
// columns
|
||||||
|
"[fill]" +
|
||||||
|
"[grow,fill]",
|
||||||
|
// rows
|
||||||
|
"[]" +
|
||||||
|
"[]" +
|
||||||
|
"[]"));
|
||||||
|
|
||||||
|
//---- label1 ----
|
||||||
|
label1.setText("Name:");
|
||||||
|
contentPanel.add(label1, "cell 0 0");
|
||||||
|
|
||||||
|
//---- textField1 ----
|
||||||
|
textField1.setComponentPopupMenu(popupMenu1);
|
||||||
|
contentPanel.add(textField1, "cell 1 0");
|
||||||
|
|
||||||
|
//---- label3 ----
|
||||||
|
label3.setText("Package:");
|
||||||
|
contentPanel.add(label3, "cell 0 1");
|
||||||
|
|
||||||
|
//---- comboBox2 ----
|
||||||
|
comboBox2.setEditable(true);
|
||||||
|
comboBox2.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
|
"com.myapp",
|
||||||
|
"com.myapp.core",
|
||||||
|
"com.myapp.ui",
|
||||||
|
"com.myapp.util",
|
||||||
|
"com.myapp.extras",
|
||||||
|
"com.myapp.components",
|
||||||
|
"com.myapp.dialogs",
|
||||||
|
"com.myapp.windows"
|
||||||
|
}));
|
||||||
|
contentPanel.add(comboBox2, "cell 1 1");
|
||||||
|
|
||||||
|
//---- label2 ----
|
||||||
|
label2.setText("Type:");
|
||||||
|
contentPanel.add(label2, "cell 0 2");
|
||||||
|
|
||||||
|
//---- comboBox1 ----
|
||||||
|
comboBox1.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
|
"Class",
|
||||||
|
"Interface",
|
||||||
|
"Package",
|
||||||
|
"Annotation",
|
||||||
|
"Enum",
|
||||||
|
"Record",
|
||||||
|
"Java Project",
|
||||||
|
"Project",
|
||||||
|
"Folder",
|
||||||
|
"File"
|
||||||
|
}));
|
||||||
|
contentPanel.add(comboBox1, "cell 1 2");
|
||||||
|
}
|
||||||
|
dialogPane.add(contentPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
//======== buttonBar ========
|
||||||
|
{
|
||||||
|
buttonBar.setLayout(new MigLayout(
|
||||||
|
"insets dialog,alignx right",
|
||||||
|
// columns
|
||||||
|
"[button,fill]" +
|
||||||
|
"[button,fill]",
|
||||||
|
// rows
|
||||||
|
null));
|
||||||
|
|
||||||
|
//---- okButton ----
|
||||||
|
okButton.setText("OK");
|
||||||
|
okButton.addActionListener(e -> okActionPerformed());
|
||||||
|
buttonBar.add(okButton, "cell 0 0");
|
||||||
|
|
||||||
|
//---- cancelButton ----
|
||||||
|
cancelButton.setText("Cancel");
|
||||||
|
cancelButton.addActionListener(e -> cancelActionPerformed());
|
||||||
|
buttonBar.add(cancelButton, "cell 1 0");
|
||||||
|
}
|
||||||
|
dialogPane.add(buttonBar, BorderLayout.SOUTH);
|
||||||
|
|
||||||
|
//======== menuBar1 ========
|
||||||
|
{
|
||||||
|
|
||||||
|
//======== menu1 ========
|
||||||
|
{
|
||||||
|
menu1.setText("text");
|
||||||
|
|
||||||
|
//---- menuItem8 ----
|
||||||
|
menuItem8.setText("text");
|
||||||
|
menu1.add(menuItem8);
|
||||||
|
|
||||||
|
//---- menuItem7 ----
|
||||||
|
menuItem7.setText("text");
|
||||||
|
menu1.add(menuItem7);
|
||||||
|
|
||||||
|
//---- menuItem6 ----
|
||||||
|
menuItem6.setText("text");
|
||||||
|
menu1.add(menuItem6);
|
||||||
|
|
||||||
|
//---- menuItem5 ----
|
||||||
|
menuItem5.setText("text");
|
||||||
|
menu1.add(menuItem5);
|
||||||
|
|
||||||
|
//---- menuItem4 ----
|
||||||
|
menuItem4.setText("text");
|
||||||
|
menu1.add(menuItem4);
|
||||||
|
|
||||||
|
//---- menuItem3 ----
|
||||||
|
menuItem3.setText("text");
|
||||||
|
menu1.add(menuItem3);
|
||||||
|
|
||||||
|
//---- menuItem2 ----
|
||||||
|
menuItem2.setText("text");
|
||||||
|
menu1.add(menuItem2);
|
||||||
|
|
||||||
|
//---- menuItem1 ----
|
||||||
|
menuItem1.setText("text");
|
||||||
|
menu1.add(menuItem1);
|
||||||
|
}
|
||||||
|
menuBar1.add(menu1);
|
||||||
|
|
||||||
|
//======== menu2 ========
|
||||||
|
{
|
||||||
|
menu2.setText("text");
|
||||||
|
|
||||||
|
//---- menuItem18 ----
|
||||||
|
menuItem18.setText("text");
|
||||||
|
menu2.add(menuItem18);
|
||||||
|
|
||||||
|
//---- menuItem17 ----
|
||||||
|
menuItem17.setText("text");
|
||||||
|
menu2.add(menuItem17);
|
||||||
|
|
||||||
|
//---- menuItem16 ----
|
||||||
|
menuItem16.setText("text");
|
||||||
|
menu2.add(menuItem16);
|
||||||
|
|
||||||
|
//---- menuItem15 ----
|
||||||
|
menuItem15.setText("text");
|
||||||
|
menu2.add(menuItem15);
|
||||||
|
|
||||||
|
//---- menuItem14 ----
|
||||||
|
menuItem14.setText("text");
|
||||||
|
menu2.add(menuItem14);
|
||||||
|
|
||||||
|
//---- menuItem13 ----
|
||||||
|
menuItem13.setText("text");
|
||||||
|
menu2.add(menuItem13);
|
||||||
|
|
||||||
|
//---- menuItem12 ----
|
||||||
|
menuItem12.setText("text");
|
||||||
|
menu2.add(menuItem12);
|
||||||
|
|
||||||
|
//---- menuItem11 ----
|
||||||
|
menuItem11.setText("text");
|
||||||
|
menu2.add(menuItem11);
|
||||||
|
|
||||||
|
//---- menuItem10 ----
|
||||||
|
menuItem10.setText("text");
|
||||||
|
menu2.add(menuItem10);
|
||||||
|
|
||||||
|
//---- menuItem9 ----
|
||||||
|
menuItem9.setText("text");
|
||||||
|
menu2.add(menuItem9);
|
||||||
|
}
|
||||||
|
menuBar1.add(menu2);
|
||||||
|
|
||||||
|
//======== menu3 ========
|
||||||
|
{
|
||||||
|
menu3.setText("text");
|
||||||
|
|
||||||
|
//---- menuItem25 ----
|
||||||
|
menuItem25.setText("text");
|
||||||
|
menu3.add(menuItem25);
|
||||||
|
|
||||||
|
//---- menuItem26 ----
|
||||||
|
menuItem26.setText("text");
|
||||||
|
menu3.add(menuItem26);
|
||||||
|
|
||||||
|
//---- menuItem24 ----
|
||||||
|
menuItem24.setText("text");
|
||||||
|
menu3.add(menuItem24);
|
||||||
|
|
||||||
|
//---- menuItem23 ----
|
||||||
|
menuItem23.setText("text");
|
||||||
|
menu3.add(menuItem23);
|
||||||
|
|
||||||
|
//---- menuItem22 ----
|
||||||
|
menuItem22.setText("text");
|
||||||
|
menu3.add(menuItem22);
|
||||||
|
|
||||||
|
//---- menuItem21 ----
|
||||||
|
menuItem21.setText("text");
|
||||||
|
menu3.add(menuItem21);
|
||||||
|
|
||||||
|
//---- menuItem20 ----
|
||||||
|
menuItem20.setText("text");
|
||||||
|
menu3.add(menuItem20);
|
||||||
|
|
||||||
|
//---- menuItem19 ----
|
||||||
|
menuItem19.setText("text");
|
||||||
|
menu3.add(menuItem19);
|
||||||
|
}
|
||||||
|
menuBar1.add(menu3);
|
||||||
|
}
|
||||||
|
dialogPane.add(menuBar1, BorderLayout.NORTH);
|
||||||
|
}
|
||||||
|
contentPane.add(dialogPane, BorderLayout.CENTER);
|
||||||
|
pack();
|
||||||
|
setLocationRelativeTo(getOwner());
|
||||||
|
|
||||||
|
//======== popupMenu1 ========
|
||||||
|
{
|
||||||
|
|
||||||
|
//---- cutMenuItem ----
|
||||||
|
cutMenuItem.setText("Cut");
|
||||||
|
cutMenuItem.setMnemonic('C');
|
||||||
|
popupMenu1.add(cutMenuItem);
|
||||||
|
|
||||||
|
//---- copyMenuItem ----
|
||||||
|
copyMenuItem.setText("Copy");
|
||||||
|
copyMenuItem.setMnemonic('O');
|
||||||
|
popupMenu1.add(copyMenuItem);
|
||||||
|
|
||||||
|
//---- pasteMenuItem ----
|
||||||
|
pasteMenuItem.setText("Paste");
|
||||||
|
pasteMenuItem.setMnemonic('P');
|
||||||
|
popupMenu1.add(pasteMenuItem);
|
||||||
|
}
|
||||||
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
}
|
||||||
|
|
||||||
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
private JPanel dialogPane;
|
||||||
|
private JPanel contentPanel;
|
||||||
|
private JLabel label1;
|
||||||
|
private JTextField textField1;
|
||||||
|
private JLabel label3;
|
||||||
|
private JComboBox<String> comboBox2;
|
||||||
|
private JLabel label2;
|
||||||
|
private JComboBox<String> comboBox1;
|
||||||
|
private JPanel buttonBar;
|
||||||
|
private JButton okButton;
|
||||||
|
private JButton cancelButton;
|
||||||
|
private JMenuBar menuBar1;
|
||||||
|
private JMenu menu1;
|
||||||
|
private JMenuItem menuItem8;
|
||||||
|
private JMenuItem menuItem7;
|
||||||
|
private JMenuItem menuItem6;
|
||||||
|
private JMenuItem menuItem5;
|
||||||
|
private JMenuItem menuItem4;
|
||||||
|
private JMenuItem menuItem3;
|
||||||
|
private JMenuItem menuItem2;
|
||||||
|
private JMenuItem menuItem1;
|
||||||
|
private JMenu menu2;
|
||||||
|
private JMenuItem menuItem18;
|
||||||
|
private JMenuItem menuItem17;
|
||||||
|
private JMenuItem menuItem16;
|
||||||
|
private JMenuItem menuItem15;
|
||||||
|
private JMenuItem menuItem14;
|
||||||
|
private JMenuItem menuItem13;
|
||||||
|
private JMenuItem menuItem12;
|
||||||
|
private JMenuItem menuItem11;
|
||||||
|
private JMenuItem menuItem10;
|
||||||
|
private JMenuItem menuItem9;
|
||||||
|
private JMenu menu3;
|
||||||
|
private JMenuItem menuItem25;
|
||||||
|
private JMenuItem menuItem26;
|
||||||
|
private JMenuItem menuItem24;
|
||||||
|
private JMenuItem menuItem23;
|
||||||
|
private JMenuItem menuItem22;
|
||||||
|
private JMenuItem menuItem21;
|
||||||
|
private JMenuItem menuItem20;
|
||||||
|
private JMenuItem menuItem19;
|
||||||
|
private JPopupMenu popupMenu1;
|
||||||
|
private JMenuItem cutMenuItem;
|
||||||
|
private JMenuItem copyMenuItem;
|
||||||
|
private JMenuItem pasteMenuItem;
|
||||||
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
}
|
||||||
@@ -0,0 +1,254 @@
|
|||||||
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
|
new FormModel {
|
||||||
|
contentType: "form/swing"
|
||||||
|
root: new FormRoot {
|
||||||
|
add( new FormWindow( "javax.swing.JDialog", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
|
name: "this"
|
||||||
|
"title": "New"
|
||||||
|
"defaultCloseOperation": 2
|
||||||
|
"modal": true
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
|
name: "dialogPane"
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
|
"$columnConstraints": "[fill][grow,fill]"
|
||||||
|
"$rowConstraints": "[][][]"
|
||||||
|
} ) {
|
||||||
|
name: "contentPanel"
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label1"
|
||||||
|
"text": "Name:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
|
name: "textField1"
|
||||||
|
"componentPopupMenu": new FormReference( "popupMenu1" )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label3"
|
||||||
|
"text": "Package:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox2"
|
||||||
|
"editable": true
|
||||||
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
|
selectedItem: "com.myapp"
|
||||||
|
addElement( "com.myapp" )
|
||||||
|
addElement( "com.myapp.core" )
|
||||||
|
addElement( "com.myapp.ui" )
|
||||||
|
addElement( "com.myapp.util" )
|
||||||
|
addElement( "com.myapp.extras" )
|
||||||
|
addElement( "com.myapp.components" )
|
||||||
|
addElement( "com.myapp.dialogs" )
|
||||||
|
addElement( "com.myapp.windows" )
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label2"
|
||||||
|
"text": "Type:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 2"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox1"
|
||||||
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
|
selectedItem: "Class"
|
||||||
|
addElement( "Class" )
|
||||||
|
addElement( "Interface" )
|
||||||
|
addElement( "Package" )
|
||||||
|
addElement( "Annotation" )
|
||||||
|
addElement( "Enum" )
|
||||||
|
addElement( "Record" )
|
||||||
|
addElement( "Java Project" )
|
||||||
|
addElement( "Project" )
|
||||||
|
addElement( "Folder" )
|
||||||
|
addElement( "File" )
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 2"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
|
"$layoutConstraints": "insets dialog,alignx right"
|
||||||
|
"$columnConstraints": "[button,fill][button,fill]"
|
||||||
|
"$rowSpecs": "[fill]"
|
||||||
|
} ) {
|
||||||
|
name: "buttonBar"
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "okButton"
|
||||||
|
"text": "OK"
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "okActionPerformed", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 0"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "cancelButton"
|
||||||
|
"text": "Cancel"
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "cancelActionPerformed", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 0"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "South"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JMenuBar", new FormLayoutManager( class javax.swing.JMenuBar ) ) {
|
||||||
|
name: "menuBar1"
|
||||||
|
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
||||||
|
name: "menu1"
|
||||||
|
"text": "text"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem8"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem7"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem6"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem5"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem4"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem3"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem2"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem1"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
||||||
|
name: "menu2"
|
||||||
|
"text": "text"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem18"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem17"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem16"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem15"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem14"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem13"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem12"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem11"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem10"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem9"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JMenu", new FormLayoutManager( class javax.swing.JMenu ) ) {
|
||||||
|
name: "menu3"
|
||||||
|
"text": "text"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem25"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem26"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem24"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem23"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem22"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem21"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem20"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem19"
|
||||||
|
"text": "text"
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "North"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 0 )
|
||||||
|
"size": new java.awt.Dimension( 330, 210 )
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
||||||
|
name: "popupMenu1"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "cutMenuItem"
|
||||||
|
"text": "Cut"
|
||||||
|
"mnemonic": 67
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "copyMenuItem"
|
||||||
|
"text": "Copy"
|
||||||
|
"mnemonic": 79
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "pasteMenuItem"
|
||||||
|
"text": "Paste"
|
||||||
|
"mnemonic": 80
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 220 )
|
||||||
|
"size": new java.awt.Dimension( 91, 87 )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -93,7 +93,7 @@ class OptionPanePanel
|
|||||||
//======== panel9 ========
|
//======== panel9 ========
|
||||||
{
|
{
|
||||||
panel9.setLayout(new MigLayout(
|
panel9.setLayout(new MigLayout(
|
||||||
"flowy,hidemode 3",
|
"flowy,insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -12,7 +12,7 @@ new FormModel {
|
|||||||
name: "scrollPane1"
|
name: "scrollPane1"
|
||||||
"border": new javax.swing.border.EmptyBorder( 0, 0, 0, 0 )
|
"border": new javax.swing.border.EmptyBorder( 0, 0, 0, 0 )
|
||||||
add( new FormContainer( "com.formdev.flatlaf.demo.ScrollablePanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "com.formdev.flatlaf.demo.ScrollablePanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "flowy,hidemode 3"
|
"$layoutConstraints": "flowy,insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][][fill]"
|
"$columnConstraints": "[][][fill]"
|
||||||
"$rowConstraints": "[top][top][top][top][top][top][top][top]"
|
"$rowConstraints": "[top][top][top][top][top][top][top][top]"
|
||||||
} ) {
|
} ) {
|
||||||
|
|||||||
@@ -1,10 +1,23 @@
|
|||||||
/*
|
/*
|
||||||
* Created by JFormDesigner on Tue Aug 27 21:47:02 CEST 2019
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.formdev.flatlaf.demo;
|
package com.formdev.flatlaf.demo;
|
||||||
|
|
||||||
import static com.formdev.flatlaf.FlatClientProperties.TABBED_PANE_HAS_FULL_BORDER;
|
import static com.formdev.flatlaf.FlatClientProperties.TABBED_PANE_HAS_FULL_BORDER;
|
||||||
|
import static com.formdev.flatlaf.FlatClientProperties.TABBED_PANE_SHOW_CONTENT_SEPARATOR;
|
||||||
import static com.formdev.flatlaf.FlatClientProperties.TABBED_PANE_SHOW_TAB_SEPARATORS;
|
import static com.formdev.flatlaf.FlatClientProperties.TABBED_PANE_SHOW_TAB_SEPARATORS;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -20,6 +33,8 @@ class TabsPanel
|
|||||||
{
|
{
|
||||||
TabsPanel() {
|
TabsPanel() {
|
||||||
initComponents();
|
initComponents();
|
||||||
|
|
||||||
|
addInitialTabs( tabbedPane1, tabbedPane2, tabbedPane3, tabbedPane4 );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tabScrollChanged() {
|
private void tabScrollChanged() {
|
||||||
@@ -28,22 +43,40 @@ class TabsPanel
|
|||||||
tabbedPane2.setTabLayoutPolicy( tabLayoutPolicy );
|
tabbedPane2.setTabLayoutPolicy( tabLayoutPolicy );
|
||||||
tabbedPane3.setTabLayoutPolicy( tabLayoutPolicy );
|
tabbedPane3.setTabLayoutPolicy( tabLayoutPolicy );
|
||||||
tabbedPane4.setTabLayoutPolicy( tabLayoutPolicy );
|
tabbedPane4.setTabLayoutPolicy( tabLayoutPolicy );
|
||||||
|
|
||||||
|
if( !autoMoreTabs && tabScrollCheckBox.isSelected() && !moreTabsCheckBox.isSelected() ) {
|
||||||
|
moreTabsCheckBox.setSelected( true );
|
||||||
|
moreTabsChanged();
|
||||||
|
autoMoreTabs = true;
|
||||||
|
} else if( autoMoreTabs && !tabScrollCheckBox.isSelected() && moreTabsCheckBox.isSelected() ) {
|
||||||
|
moreTabsCheckBox.setSelected( false );
|
||||||
|
moreTabsChanged();
|
||||||
|
autoMoreTabs = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean autoMoreTabs;
|
||||||
|
|
||||||
private void showTabSeparatorsChanged() {
|
private void showTabSeparatorsChanged() {
|
||||||
Boolean showTabSeparators = showTabSeparatorsCheckBox.isSelected() ? true : null;
|
Boolean showTabSeparators = showTabSeparatorsCheckBox.isSelected() ? true : null;
|
||||||
tabbedPane1.putClientProperty( TABBED_PANE_SHOW_TAB_SEPARATORS, showTabSeparators );
|
putTabbedPanesClientProperty( TABBED_PANE_SHOW_TAB_SEPARATORS, showTabSeparators );
|
||||||
tabbedPane2.putClientProperty( TABBED_PANE_SHOW_TAB_SEPARATORS, showTabSeparators );
|
}
|
||||||
tabbedPane3.putClientProperty( TABBED_PANE_SHOW_TAB_SEPARATORS, showTabSeparators );
|
|
||||||
tabbedPane4.putClientProperty( TABBED_PANE_SHOW_TAB_SEPARATORS, showTabSeparators );
|
private void hideContentSeparatorChanged() {
|
||||||
|
Boolean showContentSeparator = hideContentSeparatorCheckBox.isSelected() ? false : null;
|
||||||
|
putTabbedPanesClientProperty( TABBED_PANE_SHOW_CONTENT_SEPARATOR, showContentSeparator );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hasFullBorderChanged() {
|
private void hasFullBorderChanged() {
|
||||||
Boolean hasFullBorder = hasFullBorderCheckBox.isSelected() ? true : null;
|
Boolean hasFullBorder = hasFullBorderCheckBox.isSelected() ? true : null;
|
||||||
tabbedPane1.putClientProperty( TABBED_PANE_HAS_FULL_BORDER, hasFullBorder );
|
putTabbedPanesClientProperty( TABBED_PANE_HAS_FULL_BORDER, hasFullBorder );
|
||||||
tabbedPane2.putClientProperty( TABBED_PANE_HAS_FULL_BORDER, hasFullBorder );
|
}
|
||||||
tabbedPane3.putClientProperty( TABBED_PANE_HAS_FULL_BORDER, hasFullBorder );
|
|
||||||
tabbedPane4.putClientProperty( TABBED_PANE_HAS_FULL_BORDER, hasFullBorder );
|
private void putTabbedPanesClientProperty( String key, Object value ) {
|
||||||
|
tabbedPane1.putClientProperty( key, value );
|
||||||
|
tabbedPane2.putClientProperty( key, value );
|
||||||
|
tabbedPane3.putClientProperty( key, value );
|
||||||
|
tabbedPane4.putClientProperty( key, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moreTabsChanged() {
|
private void moreTabsChanged() {
|
||||||
@@ -52,15 +85,17 @@ class TabsPanel
|
|||||||
addRemoveMoreTabs( tabbedPane2, moreTabs );
|
addRemoveMoreTabs( tabbedPane2, moreTabs );
|
||||||
addRemoveMoreTabs( tabbedPane3, moreTabs );
|
addRemoveMoreTabs( tabbedPane3, moreTabs );
|
||||||
addRemoveMoreTabs( tabbedPane4, moreTabs );
|
addRemoveMoreTabs( tabbedPane4, moreTabs );
|
||||||
|
|
||||||
|
autoMoreTabs = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addRemoveMoreTabs( JTabbedPane tabbedPane, boolean add ) {
|
private void addRemoveMoreTabs( JTabbedPane tabbedPane, boolean add ) {
|
||||||
if( add ) {
|
if( add ) {
|
||||||
tabbedPane.addTab( "Tab 4", new JLabel( "tab 4" ) );
|
addTab( tabbedPane, "Tab 4", "tab content 4" );
|
||||||
tabbedPane.addTab( "Tab 5", new JLabel( "tab 5" ) );
|
addTab( tabbedPane, "Tab 5", "tab content 5" );
|
||||||
tabbedPane.addTab( "Tab 6", new JLabel( "tab 6" ) );
|
addTab( tabbedPane, "Tab 6", "tab content 6" );
|
||||||
tabbedPane.addTab( "Tab 7", new JLabel( "tab 7" ) );
|
addTab( tabbedPane, "Tab 7", "tab content 7" );
|
||||||
tabbedPane.addTab( "Tab 8", new JLabel( "tab 8" ) );
|
addTab( tabbedPane, "Tab 8", "tab content 8" );
|
||||||
} else {
|
} else {
|
||||||
int tabCount = tabbedPane.getTabCount();
|
int tabCount = tabbedPane.getTabCount();
|
||||||
if( tabCount > 3 ) {
|
if( tabCount > 3 ) {
|
||||||
@@ -70,6 +105,39 @@ class TabsPanel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addInitialTabs( JTabbedPane... tabbedPanes ) {
|
||||||
|
for( JTabbedPane tabbedPane : tabbedPanes ) {
|
||||||
|
String placement = "unknown";
|
||||||
|
switch( tabbedPane.getTabPlacement() ) {
|
||||||
|
case JTabbedPane.TOP: placement = "TOP"; break;
|
||||||
|
case JTabbedPane.BOTTOM: placement = "BOTTOM"; break;
|
||||||
|
case JTabbedPane.LEFT: placement = "LEFT"; break;
|
||||||
|
case JTabbedPane.RIGHT: placement = "RIGHT"; break;
|
||||||
|
}
|
||||||
|
addTab( tabbedPane, "Tab 1", "<html><center>" + placement + "<br>tab placement</center></html>" );
|
||||||
|
|
||||||
|
JComponent tab2 = createTab( "tab content 2" );
|
||||||
|
tab2.setBorder( new LineBorder( Color.magenta ) );
|
||||||
|
tabbedPane.addTab( "Second Tab", tab2 );
|
||||||
|
|
||||||
|
addTab( tabbedPane, "Disabled", "tab content 3" );
|
||||||
|
tabbedPane.setEnabledAt( 2, false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addTab( JTabbedPane tabbedPane, String title, String text ) {
|
||||||
|
tabbedPane.addTab( title, createTab( text ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
private JComponent createTab( String text ) {
|
||||||
|
JLabel label = new JLabel( text );
|
||||||
|
label.setHorizontalAlignment( SwingConstants.CENTER );
|
||||||
|
|
||||||
|
JPanel tab = new JPanel( new BorderLayout() );
|
||||||
|
tab.add( label, BorderLayout.CENTER );
|
||||||
|
return tab;
|
||||||
|
}
|
||||||
|
|
||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
JPanel panel9 = new JPanel();
|
JPanel panel9 = new JPanel();
|
||||||
@@ -77,41 +145,30 @@ class TabsPanel
|
|||||||
JSplitPane splitPane3 = new JSplitPane();
|
JSplitPane splitPane3 = new JSplitPane();
|
||||||
JSplitPane splitPane1 = new JSplitPane();
|
JSplitPane splitPane1 = new JSplitPane();
|
||||||
JPanel panel10 = new JPanel();
|
JPanel panel10 = new JPanel();
|
||||||
|
JLabel label1 = new JLabel();
|
||||||
JPanel panel11 = new JPanel();
|
JPanel panel11 = new JPanel();
|
||||||
|
JLabel label2 = new JLabel();
|
||||||
JSplitPane splitPane2 = new JSplitPane();
|
JSplitPane splitPane2 = new JSplitPane();
|
||||||
JPanel panel12 = new JPanel();
|
JPanel panel12 = new JPanel();
|
||||||
|
JLabel label3 = new JLabel();
|
||||||
JPanel panel13 = new JPanel();
|
JPanel panel13 = new JPanel();
|
||||||
|
JLabel label4 = new JLabel();
|
||||||
JLabel tabbedPaneLabel = new JLabel();
|
JLabel tabbedPaneLabel = new JLabel();
|
||||||
tabbedPane1 = new JTabbedPane();
|
tabbedPane1 = new JTabbedPane();
|
||||||
JPanel panel1 = new JPanel();
|
|
||||||
JLabel label1 = new JLabel();
|
|
||||||
JPanel panel2 = new JPanel();
|
|
||||||
JLabel label2 = new JLabel();
|
|
||||||
tabbedPane3 = new JTabbedPane();
|
tabbedPane3 = new JTabbedPane();
|
||||||
JPanel panel5 = new JPanel();
|
|
||||||
JLabel label5 = new JLabel();
|
|
||||||
JPanel panel6 = new JPanel();
|
|
||||||
JLabel label6 = new JLabel();
|
|
||||||
tabbedPane2 = new JTabbedPane();
|
tabbedPane2 = new JTabbedPane();
|
||||||
JPanel panel3 = new JPanel();
|
|
||||||
JLabel label3 = new JLabel();
|
|
||||||
JPanel panel4 = new JPanel();
|
|
||||||
JLabel label4 = new JLabel();
|
|
||||||
tabbedPane4 = new JTabbedPane();
|
tabbedPane4 = new JTabbedPane();
|
||||||
JPanel panel7 = new JPanel();
|
|
||||||
JLabel label7 = new JLabel();
|
|
||||||
JPanel panel8 = new JPanel();
|
|
||||||
JLabel label8 = new JLabel();
|
|
||||||
JPanel panel14 = new JPanel();
|
JPanel panel14 = new JPanel();
|
||||||
moreTabsCheckBox = new JCheckBox();
|
moreTabsCheckBox = new JCheckBox();
|
||||||
tabScrollCheckBox = new JCheckBox();
|
tabScrollCheckBox = new JCheckBox();
|
||||||
showTabSeparatorsCheckBox = new JCheckBox();
|
showTabSeparatorsCheckBox = new JCheckBox();
|
||||||
|
hideContentSeparatorCheckBox = new JCheckBox();
|
||||||
hasFullBorderCheckBox = new JCheckBox();
|
hasFullBorderCheckBox = new JCheckBox();
|
||||||
CellConstraints cc = new CellConstraints();
|
CellConstraints cc = new CellConstraints();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
"hidemode 3",
|
"insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[grow,fill]",
|
"[grow,fill]",
|
||||||
// rows
|
// rows
|
||||||
@@ -120,8 +177,8 @@ class TabsPanel
|
|||||||
//======== panel9 ========
|
//======== panel9 ========
|
||||||
{
|
{
|
||||||
panel9.setLayout(new FormLayout(
|
panel9.setLayout(new FormLayout(
|
||||||
"70dlu:grow, $lcgap, 70dlu:grow",
|
"70dlu:grow, $ugap, 70dlu:grow",
|
||||||
"default, $lgap, fill:70dlu, $lgap, pref, 2*($lgap, fill:70dlu:grow), $lgap, pref"));
|
"default, $lgap, fill:70dlu, $pgap, pref, $lgap, 2*(fill:80dlu:grow, $ugap), pref"));
|
||||||
|
|
||||||
//---- splitPaneLabel ----
|
//---- splitPaneLabel ----
|
||||||
splitPaneLabel.setText("JSplitPane:");
|
splitPaneLabel.setText("JSplitPane:");
|
||||||
@@ -134,19 +191,30 @@ class TabsPanel
|
|||||||
//======== splitPane1 ========
|
//======== splitPane1 ========
|
||||||
{
|
{
|
||||||
splitPane1.setResizeWeight(0.5);
|
splitPane1.setResizeWeight(0.5);
|
||||||
splitPane1.setOneTouchExpandable(true);
|
|
||||||
|
|
||||||
//======== panel10 ========
|
//======== panel10 ========
|
||||||
{
|
{
|
||||||
panel10.setBackground(Color.orange);
|
panel10.setBackground(new Color(217, 163, 67));
|
||||||
panel10.setLayout(new FlowLayout());
|
panel10.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//---- label1 ----
|
||||||
|
label1.setText("LEFT");
|
||||||
|
label1.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
label1.setForeground(Color.white);
|
||||||
|
panel10.add(label1, BorderLayout.CENTER);
|
||||||
}
|
}
|
||||||
splitPane1.setLeftComponent(panel10);
|
splitPane1.setLeftComponent(panel10);
|
||||||
|
|
||||||
//======== panel11 ========
|
//======== panel11 ========
|
||||||
{
|
{
|
||||||
panel11.setBackground(Color.magenta);
|
panel11.setBackground(new Color(98, 181, 67));
|
||||||
panel11.setLayout(new FlowLayout());
|
panel11.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//---- label2 ----
|
||||||
|
label2.setText("RIGHT");
|
||||||
|
label2.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
label2.setForeground(Color.white);
|
||||||
|
panel11.add(label2, BorderLayout.CENTER);
|
||||||
}
|
}
|
||||||
splitPane1.setRightComponent(panel11);
|
splitPane1.setRightComponent(panel11);
|
||||||
}
|
}
|
||||||
@@ -156,19 +224,30 @@ class TabsPanel
|
|||||||
{
|
{
|
||||||
splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
|
splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
|
||||||
splitPane2.setResizeWeight(0.5);
|
splitPane2.setResizeWeight(0.5);
|
||||||
splitPane2.setOneTouchExpandable(true);
|
|
||||||
|
|
||||||
//======== panel12 ========
|
//======== panel12 ========
|
||||||
{
|
{
|
||||||
panel12.setBackground(Color.orange);
|
panel12.setBackground(new Color(242, 101, 34));
|
||||||
panel12.setLayout(new FlowLayout());
|
panel12.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//---- label3 ----
|
||||||
|
label3.setText("TOP");
|
||||||
|
label3.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
label3.setForeground(Color.white);
|
||||||
|
panel12.add(label3, BorderLayout.CENTER);
|
||||||
}
|
}
|
||||||
splitPane2.setTopComponent(panel12);
|
splitPane2.setTopComponent(panel12);
|
||||||
|
|
||||||
//======== panel13 ========
|
//======== panel13 ========
|
||||||
{
|
{
|
||||||
panel13.setBackground(Color.magenta);
|
panel13.setBackground(new Color(64, 182, 224));
|
||||||
panel13.setLayout(new FlowLayout());
|
panel13.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//---- label4 ----
|
||||||
|
label4.setText("BOTTOM");
|
||||||
|
label4.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
label4.setForeground(Color.white);
|
||||||
|
panel13.add(label4, BorderLayout.CENTER);
|
||||||
}
|
}
|
||||||
splitPane2.setBottomComponent(panel13);
|
splitPane2.setBottomComponent(panel13);
|
||||||
}
|
}
|
||||||
@@ -179,112 +258,23 @@ class TabsPanel
|
|||||||
//---- tabbedPaneLabel ----
|
//---- tabbedPaneLabel ----
|
||||||
tabbedPaneLabel.setText("JTabbedPane:");
|
tabbedPaneLabel.setText("JTabbedPane:");
|
||||||
panel9.add(tabbedPaneLabel, cc.xy(1, 5));
|
panel9.add(tabbedPaneLabel, cc.xy(1, 5));
|
||||||
|
|
||||||
//======== tabbedPane1 ========
|
|
||||||
{
|
|
||||||
|
|
||||||
//======== panel1 ========
|
|
||||||
{
|
|
||||||
panel1.setLayout(new FlowLayout());
|
|
||||||
|
|
||||||
//---- label1 ----
|
|
||||||
label1.setText("TOP");
|
|
||||||
panel1.add(label1);
|
|
||||||
}
|
|
||||||
tabbedPane1.addTab("Tab 1", panel1);
|
|
||||||
|
|
||||||
//======== panel2 ========
|
|
||||||
{
|
|
||||||
panel2.setBorder(new LineBorder(Color.magenta));
|
|
||||||
panel2.setLayout(new FlowLayout());
|
|
||||||
}
|
|
||||||
tabbedPane1.addTab("Tab 2", panel2);
|
|
||||||
|
|
||||||
//---- label2 ----
|
|
||||||
label2.setText("text");
|
|
||||||
tabbedPane1.addTab("Tab 3", label2);
|
|
||||||
}
|
|
||||||
panel9.add(tabbedPane1, cc.xy(1, 7));
|
panel9.add(tabbedPane1, cc.xy(1, 7));
|
||||||
|
|
||||||
//======== tabbedPane3 ========
|
//======== tabbedPane3 ========
|
||||||
{
|
{
|
||||||
tabbedPane3.setTabPlacement(SwingConstants.LEFT);
|
tabbedPane3.setTabPlacement(SwingConstants.LEFT);
|
||||||
|
|
||||||
//======== panel5 ========
|
|
||||||
{
|
|
||||||
panel5.setLayout(new FlowLayout());
|
|
||||||
|
|
||||||
//---- label5 ----
|
|
||||||
label5.setText("LEFT");
|
|
||||||
panel5.add(label5);
|
|
||||||
}
|
|
||||||
tabbedPane3.addTab("Tab 1", panel5);
|
|
||||||
|
|
||||||
//======== panel6 ========
|
|
||||||
{
|
|
||||||
panel6.setBorder(new LineBorder(Color.magenta));
|
|
||||||
panel6.setLayout(new FlowLayout());
|
|
||||||
}
|
|
||||||
tabbedPane3.addTab("Tab 2", panel6);
|
|
||||||
|
|
||||||
//---- label6 ----
|
|
||||||
label6.setText("text");
|
|
||||||
tabbedPane3.addTab("Tab 3", label6);
|
|
||||||
}
|
}
|
||||||
panel9.add(tabbedPane3, cc.xy(3, 7));
|
panel9.add(tabbedPane3, cc.xy(3, 7));
|
||||||
|
|
||||||
//======== tabbedPane2 ========
|
//======== tabbedPane2 ========
|
||||||
{
|
{
|
||||||
tabbedPane2.setTabPlacement(SwingConstants.BOTTOM);
|
tabbedPane2.setTabPlacement(SwingConstants.BOTTOM);
|
||||||
|
|
||||||
//======== panel3 ========
|
|
||||||
{
|
|
||||||
panel3.setLayout(new FlowLayout());
|
|
||||||
|
|
||||||
//---- label3 ----
|
|
||||||
label3.setText("BOTTOM");
|
|
||||||
panel3.add(label3);
|
|
||||||
}
|
|
||||||
tabbedPane2.addTab("Tab 1", panel3);
|
|
||||||
|
|
||||||
//======== panel4 ========
|
|
||||||
{
|
|
||||||
panel4.setBorder(new LineBorder(Color.magenta));
|
|
||||||
panel4.setLayout(new FlowLayout());
|
|
||||||
}
|
|
||||||
tabbedPane2.addTab("Tab 2", panel4);
|
|
||||||
tabbedPane2.setEnabledAt(1, false);
|
|
||||||
|
|
||||||
//---- label4 ----
|
|
||||||
label4.setText("text");
|
|
||||||
tabbedPane2.addTab("Tab 3", label4);
|
|
||||||
}
|
}
|
||||||
panel9.add(tabbedPane2, cc.xy(1, 9));
|
panel9.add(tabbedPane2, cc.xy(1, 9));
|
||||||
|
|
||||||
//======== tabbedPane4 ========
|
//======== tabbedPane4 ========
|
||||||
{
|
{
|
||||||
tabbedPane4.setTabPlacement(SwingConstants.RIGHT);
|
tabbedPane4.setTabPlacement(SwingConstants.RIGHT);
|
||||||
|
|
||||||
//======== panel7 ========
|
|
||||||
{
|
|
||||||
panel7.setLayout(new FlowLayout());
|
|
||||||
|
|
||||||
//---- label7 ----
|
|
||||||
label7.setText("RIGHT");
|
|
||||||
panel7.add(label7);
|
|
||||||
}
|
|
||||||
tabbedPane4.addTab("Tab 1", panel7);
|
|
||||||
|
|
||||||
//======== panel8 ========
|
|
||||||
{
|
|
||||||
panel8.setBorder(new LineBorder(Color.magenta));
|
|
||||||
panel8.setLayout(new FlowLayout());
|
|
||||||
}
|
|
||||||
tabbedPane4.addTab("Tab 2", panel8);
|
|
||||||
|
|
||||||
//---- label8 ----
|
|
||||||
label8.setText("text");
|
|
||||||
tabbedPane4.addTab("Tab 3", label8);
|
|
||||||
}
|
}
|
||||||
panel9.add(tabbedPane4, cc.xy(3, 9));
|
panel9.add(tabbedPane4, cc.xy(3, 9));
|
||||||
|
|
||||||
@@ -296,32 +286,37 @@ class TabsPanel
|
|||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
|
"[fill]" +
|
||||||
"[]",
|
"[]",
|
||||||
// rows
|
// rows
|
||||||
"[center]"));
|
"[center]"));
|
||||||
|
|
||||||
//---- moreTabsCheckBox ----
|
//---- moreTabsCheckBox ----
|
||||||
moreTabsCheckBox.setText("more tabs");
|
moreTabsCheckBox.setText("More tabs");
|
||||||
moreTabsCheckBox.setMnemonic('M');
|
moreTabsCheckBox.setMnemonic('M');
|
||||||
moreTabsCheckBox.addActionListener(e -> moreTabsChanged());
|
moreTabsCheckBox.addActionListener(e -> moreTabsChanged());
|
||||||
panel14.add(moreTabsCheckBox, "cell 0 0");
|
panel14.add(moreTabsCheckBox, "cell 0 0");
|
||||||
|
|
||||||
//---- tabScrollCheckBox ----
|
//---- tabScrollCheckBox ----
|
||||||
tabScrollCheckBox.setText("tabLayoutPolicy = SCROLL");
|
tabScrollCheckBox.setText("Use scroll layout");
|
||||||
tabScrollCheckBox.setMnemonic('S');
|
tabScrollCheckBox.setMnemonic('S');
|
||||||
tabScrollCheckBox.addActionListener(e -> tabScrollChanged());
|
tabScrollCheckBox.addActionListener(e -> tabScrollChanged());
|
||||||
panel14.add(tabScrollCheckBox, "cell 1 0,alignx left,growx 0");
|
panel14.add(tabScrollCheckBox, "cell 1 0,alignx left,growx 0");
|
||||||
|
|
||||||
//---- showTabSeparatorsCheckBox ----
|
//---- showTabSeparatorsCheckBox ----
|
||||||
showTabSeparatorsCheckBox.setText("JTabbedPane.showTabSeparators");
|
showTabSeparatorsCheckBox.setText("Show tab separators");
|
||||||
showTabSeparatorsCheckBox.addActionListener(e -> showTabSeparatorsChanged());
|
showTabSeparatorsCheckBox.addActionListener(e -> showTabSeparatorsChanged());
|
||||||
panel14.add(showTabSeparatorsCheckBox, "cell 2 0");
|
panel14.add(showTabSeparatorsCheckBox, "cell 2 0");
|
||||||
|
|
||||||
|
//---- hideContentSeparatorCheckBox ----
|
||||||
|
hideContentSeparatorCheckBox.setText("Hide content separator");
|
||||||
|
hideContentSeparatorCheckBox.addActionListener(e -> hideContentSeparatorChanged());
|
||||||
|
panel14.add(hideContentSeparatorCheckBox, "cell 3 0");
|
||||||
|
|
||||||
//---- hasFullBorderCheckBox ----
|
//---- hasFullBorderCheckBox ----
|
||||||
hasFullBorderCheckBox.setText("JTabbedPane.hasFullBorder");
|
hasFullBorderCheckBox.setText("Show content border");
|
||||||
hasFullBorderCheckBox.setMnemonic('F');
|
|
||||||
hasFullBorderCheckBox.addActionListener(e -> hasFullBorderChanged());
|
hasFullBorderCheckBox.addActionListener(e -> hasFullBorderChanged());
|
||||||
panel14.add(hasFullBorderCheckBox, "cell 3 0,alignx left,growx 0");
|
panel14.add(hasFullBorderCheckBox, "cell 4 0,alignx left,growx 0");
|
||||||
}
|
}
|
||||||
panel9.add(panel14, cc.xywh(1, 11, 3, 1));
|
panel9.add(panel14, cc.xywh(1, 11, 3, 1));
|
||||||
}
|
}
|
||||||
@@ -337,6 +332,7 @@ class TabsPanel
|
|||||||
private JCheckBox moreTabsCheckBox;
|
private JCheckBox moreTabsCheckBox;
|
||||||
private JCheckBox tabScrollCheckBox;
|
private JCheckBox tabScrollCheckBox;
|
||||||
private JCheckBox showTabSeparatorsCheckBox;
|
private JCheckBox showTabSeparatorsCheckBox;
|
||||||
|
private JCheckBox hideContentSeparatorCheckBox;
|
||||||
private JCheckBox hasFullBorderCheckBox;
|
private JCheckBox hasFullBorderCheckBox;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.0.0.194" Java: "11.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "15" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -7,14 +7,14 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.defaultVariableLocal": true
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[grow,fill]"
|
"$columnConstraints": "[grow,fill]"
|
||||||
"$rowConstraints": "[grow,fill]"
|
"$rowConstraints": "[grow,fill]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class com.jgoodies.forms.layout.FormLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class com.jgoodies.forms.layout.FormLayout ) {
|
||||||
"$columnSpecs": "70dlu:grow, labelcompgap, 70dlu:grow"
|
"$columnSpecs": "70dlu:grow, unrelgap, 70dlu:grow"
|
||||||
"$rowSpecs": "default, linegap, fill:70dlu, linegap, pref, linegap, fill:70dlu:grow, linegap, fill:70dlu:grow, linegap, pref"
|
"$rowSpecs": "default, linegap, fill:70dlu, pargap, pref, linegap, fill:80dlu:grow, unrelgap, fill:80dlu:grow, unrelgap, pref"
|
||||||
} ) {
|
} ) {
|
||||||
name: "panel9"
|
name: "panel9"
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
@@ -27,16 +27,31 @@ new FormModel {
|
|||||||
add( new FormContainer( "javax.swing.JSplitPane", new FormLayoutManager( class javax.swing.JSplitPane ) ) {
|
add( new FormContainer( "javax.swing.JSplitPane", new FormLayoutManager( class javax.swing.JSplitPane ) ) {
|
||||||
name: "splitPane1"
|
name: "splitPane1"
|
||||||
"resizeWeight": 0.5
|
"resizeWeight": 0.5
|
||||||
"oneTouchExpandable": true
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel10"
|
name: "panel10"
|
||||||
"background": sfield java.awt.Color orange
|
"background": new java.awt.Color( 217, 163, 67, 255 )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label1"
|
||||||
|
"text": "LEFT"
|
||||||
|
"horizontalAlignment": 0
|
||||||
|
"foreground": sfield java.awt.Color white
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class java.lang.String ) {
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
"value": "left"
|
"value": "left"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
name: "panel11"
|
name: "panel11"
|
||||||
"background": sfield java.awt.Color magenta
|
"background": new java.awt.Color( 98, 181, 67, 255 )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label2"
|
||||||
|
"text": "RIGHT"
|
||||||
|
"horizontalAlignment": 0
|
||||||
|
"foreground": sfield java.awt.Color white
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class java.lang.String ) {
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
"value": "right"
|
"value": "right"
|
||||||
} )
|
} )
|
||||||
@@ -47,16 +62,31 @@ new FormModel {
|
|||||||
name: "splitPane2"
|
name: "splitPane2"
|
||||||
"orientation": 0
|
"orientation": 0
|
||||||
"resizeWeight": 0.5
|
"resizeWeight": 0.5
|
||||||
"oneTouchExpandable": true
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel12"
|
name: "panel12"
|
||||||
"background": sfield java.awt.Color orange
|
"background": new java.awt.Color( 242, 101, 34, 255 )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label3"
|
||||||
|
"text": "TOP"
|
||||||
|
"horizontalAlignment": 0
|
||||||
|
"foreground": sfield java.awt.Color white
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class java.lang.String ) {
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
"value": "left"
|
"value": "left"
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
name: "panel13"
|
name: "panel13"
|
||||||
"background": sfield java.awt.Color magenta
|
"background": new java.awt.Color( 64, 182, 224, 255 )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label4"
|
||||||
|
"text": "BOTTOM"
|
||||||
|
"horizontalAlignment": 0
|
||||||
|
"foreground": sfield java.awt.Color white
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class java.lang.String ) {
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
"value": "right"
|
"value": "right"
|
||||||
} )
|
} )
|
||||||
@@ -79,27 +109,6 @@ new FormModel {
|
|||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel1"
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label1"
|
|
||||||
"text": "TOP"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 1"
|
|
||||||
} )
|
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel2"
|
|
||||||
"border": &LineBorder0 new javax.swing.border.LineBorder( sfield java.awt.Color magenta, 1, false )
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 2"
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label2"
|
|
||||||
"text": "text"
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 3"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||||
"gridX": 1
|
"gridX": 1
|
||||||
"gridY": 7
|
"gridY": 7
|
||||||
@@ -110,27 +119,6 @@ new FormModel {
|
|||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel5"
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label5"
|
|
||||||
"text": "LEFT"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 1"
|
|
||||||
} )
|
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel6"
|
|
||||||
"border": #LineBorder0
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 2"
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label6"
|
|
||||||
"text": "text"
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 3"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||||
"gridX": 3
|
"gridX": 3
|
||||||
"gridY": 7
|
"gridY": 7
|
||||||
@@ -141,28 +129,6 @@ new FormModel {
|
|||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel3"
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label3"
|
|
||||||
"text": "BOTTOM"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 1"
|
|
||||||
} )
|
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel4"
|
|
||||||
"border": #LineBorder0
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 2"
|
|
||||||
"enabled": false
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label4"
|
|
||||||
"text": "text"
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 3"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||||
"gridY": 9
|
"gridY": 9
|
||||||
} )
|
} )
|
||||||
@@ -172,40 +138,19 @@ new FormModel {
|
|||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel7"
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label7"
|
|
||||||
"text": "RIGHT"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 1"
|
|
||||||
} )
|
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.FlowLayout ) ) {
|
|
||||||
name: "panel8"
|
|
||||||
"border": #LineBorder0
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 2"
|
|
||||||
} )
|
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
|
||||||
name: "label8"
|
|
||||||
"text": "text"
|
|
||||||
}, new FormLayoutConstraints( null ) {
|
|
||||||
"title": "Tab 3"
|
|
||||||
} )
|
|
||||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||||
"gridX": 3
|
"gridX": 3
|
||||||
"gridY": 9
|
"gridY": 9
|
||||||
} )
|
} )
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "insets 0,hidemode 3"
|
"$layoutConstraints": "insets 0,hidemode 3"
|
||||||
"$columnConstraints": "[][][][]"
|
"$columnConstraints": "[][][][fill][]"
|
||||||
"$rowConstraints": "[center]"
|
"$rowConstraints": "[center]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "panel14"
|
name: "panel14"
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
name: "moreTabsCheckBox"
|
name: "moreTabsCheckBox"
|
||||||
"text": "more tabs"
|
"text": "More tabs"
|
||||||
"mnemonic": 77
|
"mnemonic": 77
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
@@ -216,7 +161,7 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
name: "tabScrollCheckBox"
|
name: "tabScrollCheckBox"
|
||||||
"text": "tabLayoutPolicy = SCROLL"
|
"text": "Use scroll layout"
|
||||||
"mnemonic": 83
|
"mnemonic": 83
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
@@ -227,7 +172,7 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
name: "showTabSeparatorsCheckBox"
|
name: "showTabSeparatorsCheckBox"
|
||||||
"text": "JTabbedPane.showTabSeparators"
|
"text": "Show tab separators"
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
@@ -235,16 +180,25 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 0"
|
"value": "cell 2 0"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
|
name: "hideContentSeparatorCheckBox"
|
||||||
|
"text": "Hide content separator"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hideContentSeparatorChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 0"
|
||||||
|
} )
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||||
name: "hasFullBorderCheckBox"
|
name: "hasFullBorderCheckBox"
|
||||||
"text": "JTabbedPane.hasFullBorder"
|
"text": "Show content border"
|
||||||
"mnemonic": 70
|
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hasFullBorderChanged", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hasFullBorderChanged", false ) )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 3 0,alignx left,growx 0"
|
"value": "cell 4 0,alignx left,growx 0"
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||||
"gridY": 11
|
"gridY": 11
|
||||||
@@ -255,7 +209,7 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 610, 515 )
|
"size": new java.awt.Dimension( 700, 515 )
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class ExtrasPanel
|
|||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
"hidemode 3",
|
"insets dialog,hidemode 3",
|
||||||
// columns
|
// columns
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
@@ -98,7 +98,7 @@ public class ExtrasPanel
|
|||||||
//---- triStateLabel1 ----
|
//---- triStateLabel1 ----
|
||||||
triStateLabel1.setText("text");
|
triStateLabel1.setText("text");
|
||||||
triStateLabel1.setEnabled(false);
|
triStateLabel1.setEnabled(false);
|
||||||
add(triStateLabel1, "cell 2 1");
|
add(triStateLabel1, "cell 2 1,gapx 30");
|
||||||
|
|
||||||
//---- label2 ----
|
//---- label2 ----
|
||||||
label2.setText("SVG Icons:");
|
label2.setText("SVG Icons:");
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ new FormModel {
|
|||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
root: new FormRoot {
|
root: new FormRoot {
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "hidemode 3"
|
"$layoutConstraints": "insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][][left]"
|
"$columnConstraints": "[][][left]"
|
||||||
"$rowConstraints": "[]para[][][]"
|
"$rowConstraints": "[]para[][][]"
|
||||||
} ) {
|
} ) {
|
||||||
@@ -33,7 +33,7 @@ new FormModel {
|
|||||||
"text": "text"
|
"text": "text"
|
||||||
"enabled": false
|
"enabled": false
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 1"
|
"value": "cell 2 1,gapx 30"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
name: "label2"
|
name: "label2"
|
||||||
|
|||||||
@@ -205,11 +205,11 @@ public class IJThemesPanel
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// select first theme if none selected
|
// select first theme if none selected
|
||||||
if( themesList.getSelectedIndex() < 0 )
|
if( themesList.getSelectedIndex() < 0 )
|
||||||
themesList.setSelectedIndex( 0 );
|
themesList.setSelectedIndex( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
// scroll selection into visible area
|
// scroll selection into visible area
|
||||||
int sel = themesList.getSelectedIndex();
|
int sel = themesList.getSelectedIndex();
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2020 FormDev Software GmbH
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
HintPanel.backgroundColor=darken(#ffffe1,80%)
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# Copyright 2020 FormDev Software GmbH
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
HintPanel.backgroundColor=#ffffe1
|
||||||
@@ -3,16 +3,20 @@ FlatLaf Extras
|
|||||||
|
|
||||||
This sub-project provides some additional components and classes:
|
This sub-project provides some additional components and classes:
|
||||||
|
|
||||||
- [FlatAnimatedLafChange](src/main/java/com/formdev/flatlaf/extras/FlatAnimatedLafChange.java):
|
- [FlatSVGIcon](https://www.javadoc.io/doc/com.formdev/flatlaf-extras/latest/com/formdev/flatlaf/extras/FlatSVGIcon.html):
|
||||||
Animated Laf changing.
|
An icon that displays SVG using
|
||||||
- [FlatInspector](src/main/java/com/formdev/flatlaf/extras/FlatInspector.java):
|
[svgSalamander](https://github.com/JFormDesigner/svgSalamander).\
|
||||||
A simple UI inspector that shows information about UI component at mouse
|

|
||||||
location in a tooltip.
|
- [TriStateCheckBox](https://www.javadoc.io/doc/com.formdev/flatlaf-extras/latest/com/formdev/flatlaf/extras/TriStateCheckBox.html):
|
||||||
- [FlatSVGIcon](src/main/java/com/formdev/flatlaf/extras/FlatSVGIcon.java): An
|
A tri-state check box.\
|
||||||
icon that displays SVG using
|

|
||||||
[svgSalamander](https://github.com/JFormDesigner/svgSalamander).
|
- [FlatAnimatedLafChange](https://www.javadoc.io/doc/com.formdev/flatlaf-extras/latest/com/formdev/flatlaf/extras/FlatAnimatedLafChange.html):
|
||||||
- [TriStateCheckBox](src/main/java/com/formdev/flatlaf/extras/TriStateCheckBox.java):
|
Animated Laf (theme) changing.
|
||||||
A tri-state check box.
|
- [FlatInspector](#ui-inspector): A simple UI inspector that shows information
|
||||||
|
about UI component at mouse location in a tooltip.
|
||||||
|
- [FlatUIDefaultsInspector](#ui-defaults-inspector): A simple UI defaults
|
||||||
|
inspector that shows a window with all UI defaults used in current theme (look
|
||||||
|
and feel).
|
||||||
|
|
||||||
|
|
||||||
Download
|
Download
|
||||||
@@ -36,3 +40,45 @@ you can download here:
|
|||||||
|
|
||||||
[](https://bintray.com/jformdesigner/flatlaf/flatlaf/_latestVersion)
|
[](https://bintray.com/jformdesigner/flatlaf/flatlaf/_latestVersion)
|
||||||
[](https://bintray.com/jformdesigner/svgSalamander/svgSalamander/_latestVersion)
|
[](https://bintray.com/jformdesigner/svgSalamander/svgSalamander/_latestVersion)
|
||||||
|
|
||||||
|
|
||||||
|
Tools
|
||||||
|
-----
|
||||||
|
|
||||||
|
### UI Inspector
|
||||||
|
|
||||||
|
A simple UI inspector that shows information about UI component at mouse
|
||||||
|
location in a tooltip, which may be useful while developing an application.
|
||||||
|
Should be not installed in released applications.
|
||||||
|
|
||||||
|
Once installed with following code (e.g. in method `main`), it can be activated
|
||||||
|
for the active window with the given keystroke:
|
||||||
|
|
||||||
|
~~~java
|
||||||
|
FlatInspector.install( "ctrl shift alt X" );
|
||||||
|
~~~
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
When the UI inspector is active some additional keys are available:
|
||||||
|
|
||||||
|
- press <kbd>Esc</kbd> key to disable UI inspector
|
||||||
|
- press <kbd>Ctrl</kbd> key to increase inspection level, which shows
|
||||||
|
information about parent of UI component at mouse location
|
||||||
|
- press <kbd>Shift</kbd> key to decrease inspection level
|
||||||
|
|
||||||
|
|
||||||
|
### UI Defaults Inspector
|
||||||
|
|
||||||
|
A simple UI defaults inspector that shows a window with all UI defaults used in
|
||||||
|
current theme (look and feel), which may be useful while developing an
|
||||||
|
application. Should be not installed in released applications.
|
||||||
|
|
||||||
|
Once installed with following code (e.g. in method `main`), it can be activated
|
||||||
|
with the given keystroke:
|
||||||
|
|
||||||
|
~~~java
|
||||||
|
FlatUIDefaultsInspector.install( "ctrl shift alt Y" );
|
||||||
|
~~~
|
||||||
|
|
||||||
|

|
||||||
|
|||||||
@@ -22,7 +22,7 @@ plugins {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation( project( ":flatlaf-core" ) )
|
implementation( project( ":flatlaf-core" ) )
|
||||||
implementation( "com.formdev:svgSalamander:1.1.2.1" )
|
implementation( "com.formdev:svgSalamander:1.1.2.3" )
|
||||||
}
|
}
|
||||||
|
|
||||||
flatlafModuleInfo {
|
flatlafModuleInfo {
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ package com.formdev.flatlaf.extras;
|
|||||||
import java.awt.AlphaComposite;
|
import java.awt.AlphaComposite;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Image;
|
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.util.HashMap;
|
import java.awt.image.VolatileImage;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.WeakHashMap;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JLayeredPane;
|
import javax.swing.JLayeredPane;
|
||||||
import javax.swing.RootPaneContainer;
|
import javax.swing.RootPaneContainer;
|
||||||
@@ -56,8 +56,10 @@ public class FlatAnimatedLafChange
|
|||||||
public static int resolution = 40;
|
public static int resolution = 40;
|
||||||
|
|
||||||
private static Animator animator;
|
private static Animator animator;
|
||||||
private static final Map<JLayeredPane, JComponent> map = new HashMap<>();
|
private static final Map<JLayeredPane, JComponent> oldUIsnapshots = new WeakHashMap<>();
|
||||||
|
private static final Map<JLayeredPane, JComponent> newUIsnapshots = new WeakHashMap<>();
|
||||||
private static float alpha;
|
private static float alpha;
|
||||||
|
private static boolean inShowSnapshot;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a snapshot of the old UI and shows it on top of the UI.
|
* Create a snapshot of the old UI and shows it on top of the UI.
|
||||||
@@ -73,16 +75,27 @@ public class FlatAnimatedLafChange
|
|||||||
|
|
||||||
alpha = 1;
|
alpha = 1;
|
||||||
|
|
||||||
|
// show snapshot of old UI
|
||||||
|
showSnapshot( true, oldUIsnapshots );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void showSnapshot( boolean useAlpha, Map<JLayeredPane, JComponent> map ) {
|
||||||
|
inShowSnapshot = true;
|
||||||
|
|
||||||
// create snapshots for all shown windows
|
// create snapshots for all shown windows
|
||||||
Window[] windows = Window.getWindows();
|
Window[] windows = Window.getWindows();
|
||||||
for( Window window : windows ) {
|
for( Window window : windows ) {
|
||||||
if( !(window instanceof RootPaneContainer) || !window.isShowing() )
|
if( !(window instanceof RootPaneContainer) || !window.isShowing() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
JLayeredPane layeredPane = ((RootPaneContainer)window).getLayeredPane();
|
// create snapshot image
|
||||||
|
// (using volatile image to have correct sub-pixel text rendering on Java 9+)
|
||||||
|
VolatileImage snapshot = window.createVolatileImage( window.getWidth(), window.getHeight() );
|
||||||
|
if( snapshot == null )
|
||||||
|
continue;
|
||||||
|
|
||||||
// create snapshot image of layered pane
|
// paint window to snapshot image
|
||||||
Image snapshot = window.createImage( window.getWidth(), window.getHeight() );
|
JLayeredPane layeredPane = ((RootPaneContainer)window).getLayeredPane();
|
||||||
layeredPane.paint( snapshot.getGraphics() );
|
layeredPane.paint( snapshot.getGraphics() );
|
||||||
|
|
||||||
// create snapshot layer, which is added to layered pane and paints
|
// create snapshot layer, which is added to layered pane and paints
|
||||||
@@ -90,16 +103,32 @@ public class FlatAnimatedLafChange
|
|||||||
JComponent snapshotLayer = new JComponent() {
|
JComponent snapshotLayer = new JComponent() {
|
||||||
@Override
|
@Override
|
||||||
public void paint( Graphics g ) {
|
public void paint( Graphics g ) {
|
||||||
((Graphics2D)g).setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER, alpha ) );
|
if( inShowSnapshot || snapshot.contentsLost() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( useAlpha )
|
||||||
|
((Graphics2D)g).setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER, alpha ) );
|
||||||
g.drawImage( snapshot, 0, 0, null );
|
g.drawImage( snapshot, 0, 0, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeNotify() {
|
||||||
|
super.removeNotify();
|
||||||
|
|
||||||
|
// release system resources used by volatile image
|
||||||
|
snapshot.flush();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
if( !useAlpha )
|
||||||
|
snapshotLayer.setOpaque( true );
|
||||||
snapshotLayer.setSize( layeredPane.getSize() );
|
snapshotLayer.setSize( layeredPane.getSize() );
|
||||||
|
|
||||||
// add image layer to layered pane
|
// add image layer to layered pane
|
||||||
layeredPane.add( snapshotLayer, JLayeredPane.DRAG_LAYER );
|
layeredPane.add( snapshotLayer, Integer.valueOf( JLayeredPane.DRAG_LAYER + (useAlpha ? 2 : 1) ) );
|
||||||
map.put( layeredPane, snapshotLayer );
|
map.put( layeredPane, snapshotLayer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inShowSnapshot = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,9 +140,12 @@ public class FlatAnimatedLafChange
|
|||||||
if( !FlatSystemProperties.getBoolean( "flatlaf.animatedLafChange", true ) )
|
if( !FlatSystemProperties.getBoolean( "flatlaf.animatedLafChange", true ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( map.isEmpty() )
|
if( oldUIsnapshots.isEmpty() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// show snapshot of new UI
|
||||||
|
showSnapshot( false, newUIsnapshots );
|
||||||
|
|
||||||
// create animator
|
// create animator
|
||||||
animator = new Animator( duration, fraction -> {
|
animator = new Animator( duration, fraction -> {
|
||||||
if( fraction < 0.1 || fraction > 0.9 )
|
if( fraction < 0.1 || fraction > 0.9 )
|
||||||
@@ -122,7 +154,7 @@ public class FlatAnimatedLafChange
|
|||||||
alpha = 1f - fraction;
|
alpha = 1f - fraction;
|
||||||
|
|
||||||
// repaint snapshots
|
// repaint snapshots
|
||||||
for( Map.Entry<JLayeredPane, JComponent> e : map.entrySet() ) {
|
for( Map.Entry<JLayeredPane, JComponent> e : oldUIsnapshots.entrySet() ) {
|
||||||
if( e.getKey().isShowing() )
|
if( e.getKey().isShowing() )
|
||||||
e.getValue().repaint();
|
e.getValue().repaint();
|
||||||
}
|
}
|
||||||
@@ -136,6 +168,11 @@ public class FlatAnimatedLafChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void hideSnapshot() {
|
private static void hideSnapshot() {
|
||||||
|
hideSnapshot( oldUIsnapshots );
|
||||||
|
hideSnapshot( newUIsnapshots );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void hideSnapshot( Map<JLayeredPane, JComponent> map ) {
|
||||||
// remove snapshots
|
// remove snapshots
|
||||||
for( Map.Entry<JLayeredPane, JComponent> e : map.entrySet() ) {
|
for( Map.Entry<JLayeredPane, JComponent> e : map.entrySet() ) {
|
||||||
e.getKey().remove( e.getValue() );
|
e.getKey().remove( e.getValue() );
|
||||||
|
|||||||
@@ -158,10 +158,20 @@ public class FlatInspector
|
|||||||
} else if( id == KeyEvent.KEY_RELEASED && wasCtrlOrShiftKeyPressed ) {
|
} else if( id == KeyEvent.KEY_RELEASED && wasCtrlOrShiftKeyPressed ) {
|
||||||
if( keyCode == KeyEvent.VK_CONTROL ) {
|
if( keyCode == KeyEvent.VK_CONTROL ) {
|
||||||
inspectParentLevel++;
|
inspectParentLevel++;
|
||||||
inspect( lastX, lastY );
|
int parentLevel = inspect( lastX, lastY );
|
||||||
|
|
||||||
|
// limit level
|
||||||
|
if( inspectParentLevel > parentLevel )
|
||||||
|
inspectParentLevel = parentLevel;
|
||||||
} else if( keyCode == KeyEvent.VK_SHIFT && inspectParentLevel > 0 ) {
|
} else if( keyCode == KeyEvent.VK_SHIFT && inspectParentLevel > 0 ) {
|
||||||
inspectParentLevel--;
|
inspectParentLevel--;
|
||||||
inspect( lastX, lastY );
|
int parentLevel = inspect( lastX, lastY );
|
||||||
|
|
||||||
|
// decrease level
|
||||||
|
if( inspectParentLevel > parentLevel ) {
|
||||||
|
inspectParentLevel = Math.max( parentLevel - 1, 0 );
|
||||||
|
inspect( lastX, lastY );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,24 +258,28 @@ public class FlatInspector
|
|||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void inspect( int x, int y ) {
|
private int inspect( int x, int y ) {
|
||||||
Point pt = SwingUtilities.convertPoint( rootPane.getGlassPane(), x, y, rootPane );
|
Point pt = SwingUtilities.convertPoint( rootPane.getGlassPane(), x, y, rootPane );
|
||||||
Component c = getDeepestComponentAt( rootPane, pt.x, pt.y );
|
Component c = getDeepestComponentAt( rootPane, pt.x, pt.y );
|
||||||
|
int parentLevel = 0;
|
||||||
for( int i = 0; i < inspectParentLevel && c != null; i++ ) {
|
for( int i = 0; i < inspectParentLevel && c != null; i++ ) {
|
||||||
Container parent = c.getParent();
|
Container parent = c.getParent();
|
||||||
if( parent == null )
|
if( parent == null )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
c = parent;
|
c = parent;
|
||||||
|
parentLevel++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( c == lastComponent )
|
if( c == lastComponent )
|
||||||
return;
|
return parentLevel;
|
||||||
|
|
||||||
lastComponent = c;
|
lastComponent = c;
|
||||||
|
|
||||||
highlight( c );
|
highlight( c );
|
||||||
showToolTip( c, x, y );
|
showToolTip( c, x, y, parentLevel );
|
||||||
|
|
||||||
|
return parentLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Component getDeepestComponentAt( Component parent, int x, int y ) {
|
private Component getDeepestComponentAt( Component parent, int x, int y ) {
|
||||||
@@ -338,7 +352,7 @@ public class FlatInspector
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showToolTip( Component c, int x, int y ) {
|
private void showToolTip( Component c, int x, int y, int parentLevel ) {
|
||||||
if( c == null ) {
|
if( c == null ) {
|
||||||
if( tip != null )
|
if( tip != null )
|
||||||
tip.setVisible( false );
|
tip.setVisible( false );
|
||||||
@@ -356,7 +370,7 @@ public class FlatInspector
|
|||||||
} else
|
} else
|
||||||
tip.setVisible( true );
|
tip.setVisible( true );
|
||||||
|
|
||||||
tip.setTipText( buildToolTipText( c ) );
|
tip.setTipText( buildToolTipText( c, parentLevel ) );
|
||||||
|
|
||||||
int tx = x + UIScale.scale( 8 );
|
int tx = x + UIScale.scale( 8 );
|
||||||
int ty = y + UIScale.scale( 16 );
|
int ty = y + UIScale.scale( 16 );
|
||||||
@@ -377,7 +391,7 @@ public class FlatInspector
|
|||||||
tip.repaint();
|
tip.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String buildToolTipText( Component c ) {
|
private static String buildToolTipText( Component c, int parentLevel ) {
|
||||||
String name = c.getClass().getName();
|
String name = c.getClass().getName();
|
||||||
name = name.substring( name.lastIndexOf( '.' ) + 1 );
|
name = name.substring( name.lastIndexOf( '.' ) + 1 );
|
||||||
|
|
||||||
@@ -441,10 +455,10 @@ public class FlatInspector
|
|||||||
text += "Left-to-right: " + c.getComponentOrientation().isLeftToRight() + '\n';
|
text += "Left-to-right: " + c.getComponentOrientation().isLeftToRight() + '\n';
|
||||||
text += "Parent: " + (c.getParent() != null ? c.getParent().getClass().getName() : "null");
|
text += "Parent: " + (c.getParent() != null ? c.getParent().getClass().getName() : "null");
|
||||||
|
|
||||||
if( inspectParentLevel > 0 )
|
if( parentLevel > 0 )
|
||||||
text += "\n\nParent level: " + inspectParentLevel;
|
text += "\n\nParent level: " + parentLevel;
|
||||||
|
|
||||||
if( inspectParentLevel > 0 )
|
if( parentLevel > 0 )
|
||||||
text += "\n(press Ctrl/Shift to increase/decrease level)";
|
text += "\n(press Ctrl/Shift to increase/decrease level)";
|
||||||
else
|
else
|
||||||
text += "\n\n(press Ctrl key to inspect parent)";
|
text += "\n\n(press Ctrl key to inspect parent)";
|
||||||
|
|||||||
@@ -50,11 +50,18 @@ public class FlatSVGIcon
|
|||||||
private static final SVGUniverse svgUniverse = new SVGUniverse();
|
private static final SVGUniverse svgUniverse = new SVGUniverse();
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
private final ClassLoader classLoader;
|
||||||
|
|
||||||
private SVGDiagram diagram;
|
private SVGDiagram diagram;
|
||||||
private boolean dark;
|
private boolean dark;
|
||||||
|
|
||||||
public FlatSVGIcon( String name ) {
|
public FlatSVGIcon( String name ) {
|
||||||
|
this( name, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSVGIcon( String name, ClassLoader classLoader ) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.classLoader = classLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
@@ -79,7 +86,14 @@ public class FlatSVGIcon
|
|||||||
int dotIndex = name.lastIndexOf( '.' );
|
int dotIndex = name.lastIndexOf( '.' );
|
||||||
name = name.substring( 0, dotIndex ) + "_dark" + name.substring( dotIndex );
|
name = name.substring( 0, dotIndex ) + "_dark" + name.substring( dotIndex );
|
||||||
}
|
}
|
||||||
return FlatSVGIcon.class.getClassLoader().getResource( name );
|
|
||||||
|
ClassLoader cl = (classLoader != null) ? classLoader : FlatSVGIcon.class.getClassLoader();
|
||||||
|
return cl.getResource( name );
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasFound() {
|
||||||
|
update();
|
||||||
|
return diagram != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,912 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.extras;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.*;
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import java.util.prefs.Preferences;
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.border.Border;
|
||||||
|
import javax.swing.border.EmptyBorder;
|
||||||
|
import javax.swing.event.DocumentEvent;
|
||||||
|
import javax.swing.event.DocumentListener;
|
||||||
|
import javax.swing.table.AbstractTableModel;
|
||||||
|
import javax.swing.table.DefaultTableCellRenderer;
|
||||||
|
import javax.swing.table.TableColumnModel;
|
||||||
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
|
import com.formdev.flatlaf.icons.FlatAbstractIcon;
|
||||||
|
import com.formdev.flatlaf.ui.FlatBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatEmptyBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatLineBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatMarginBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
import com.formdev.flatlaf.util.GrayFilter;
|
||||||
|
import com.formdev.flatlaf.util.HSLColor;
|
||||||
|
import com.formdev.flatlaf.util.ScaledEmptyBorder;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple UI defaults inspector that shows a window with all UI defaults used
|
||||||
|
* in current look and feel.
|
||||||
|
* <p>
|
||||||
|
* To use it in an application install it with:
|
||||||
|
* <pre>
|
||||||
|
* FlatUIDefaultsInspector.install( "ctrl shift alt Y" );
|
||||||
|
* </pre>
|
||||||
|
* This can be done e.g. in the main() method and allows enabling (and disabling)
|
||||||
|
* the UI defaults inspector with the given keystroke.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatUIDefaultsInspector
|
||||||
|
{
|
||||||
|
private static final int KEY_MODIFIERS_MASK = InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.META_DOWN_MASK;
|
||||||
|
|
||||||
|
private static FlatUIDefaultsInspector inspector;
|
||||||
|
|
||||||
|
private final String title;
|
||||||
|
private final PropertyChangeListener lafListener = this::lafChanged;
|
||||||
|
private final PropertyChangeListener lafDefaultsListener = this::lafDefaultsChanged;
|
||||||
|
private boolean refreshPending;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Installs a key listener into the application that allows enabling and disabling
|
||||||
|
* the UI inspector with the given keystroke (e.g. "ctrl shift alt Y").
|
||||||
|
*/
|
||||||
|
public static void install( String activationKeys ) {
|
||||||
|
KeyStroke keyStroke = KeyStroke.getKeyStroke( activationKeys );
|
||||||
|
Toolkit.getDefaultToolkit().addAWTEventListener( e -> {
|
||||||
|
if( e.getID() == KeyEvent.KEY_RELEASED &&
|
||||||
|
((KeyEvent)e).getKeyCode() == keyStroke.getKeyCode() &&
|
||||||
|
(((KeyEvent)e).getModifiersEx() & KEY_MODIFIERS_MASK) == (keyStroke.getModifiers() & KEY_MODIFIERS_MASK) )
|
||||||
|
{
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
}, AWTEvent.KEY_EVENT_MASK );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void show() {
|
||||||
|
if( inspector != null ) {
|
||||||
|
inspector.ensureOnScreen();
|
||||||
|
inspector.frame.toFront();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
inspector = new FlatUIDefaultsInspector();
|
||||||
|
inspector.frame.setVisible( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void hide() {
|
||||||
|
if( inspector != null )
|
||||||
|
inspector.frame.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private FlatUIDefaultsInspector() {
|
||||||
|
initComponents();
|
||||||
|
|
||||||
|
title = frame.getTitle();
|
||||||
|
updateWindowTitle();
|
||||||
|
|
||||||
|
panel.setBorder( new ScaledEmptyBorder( 10, 10, 10, 10 ) );
|
||||||
|
filterPanel.setBorder( new ScaledEmptyBorder( 0, 0, 10, 0 ) );
|
||||||
|
|
||||||
|
// initialize filter
|
||||||
|
filterField.getDocument().addDocumentListener( new DocumentListener() {
|
||||||
|
@Override
|
||||||
|
public void removeUpdate( DocumentEvent e ) {
|
||||||
|
filterChanged();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void insertUpdate( DocumentEvent e ) {
|
||||||
|
filterChanged();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void changedUpdate( DocumentEvent e ) {
|
||||||
|
filterChanged();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
delegateKey( KeyEvent.VK_UP, "unitScrollUp" );
|
||||||
|
delegateKey( KeyEvent.VK_DOWN, "unitScrollDown" );
|
||||||
|
delegateKey( KeyEvent.VK_PAGE_UP, "scrollUp" );
|
||||||
|
delegateKey( KeyEvent.VK_PAGE_DOWN, "scrollDown" );
|
||||||
|
|
||||||
|
// initialize table
|
||||||
|
table.setModel( new ItemsTableModel( getUIDefaultsItems() ) );
|
||||||
|
table.setDefaultRenderer( String.class, new KeyRenderer() );
|
||||||
|
table.setDefaultRenderer( Item.class, new ValueRenderer() );
|
||||||
|
table.getRowSorter().setSortKeys( Collections.singletonList(
|
||||||
|
new RowSorter.SortKey( 0, SortOrder.ASCENDING ) ) );
|
||||||
|
|
||||||
|
// restore window bounds
|
||||||
|
Preferences prefs = getPrefs();
|
||||||
|
int x = prefs.getInt( "x", -1 );
|
||||||
|
int y = prefs.getInt( "y", -1 );
|
||||||
|
int width = prefs.getInt( "width", UIScale.scale( 600 ) );
|
||||||
|
int height = prefs.getInt( "height", UIScale.scale( 800 ) );
|
||||||
|
frame.setSize( width, height );
|
||||||
|
if( x != -1 && y != -1 ) {
|
||||||
|
frame.setLocation( x, y );
|
||||||
|
ensureOnScreen();
|
||||||
|
} else
|
||||||
|
frame.setLocationRelativeTo( null );
|
||||||
|
|
||||||
|
// restore column widths
|
||||||
|
TableColumnModel columnModel = table.getColumnModel();
|
||||||
|
columnModel.getColumn( 0 ).setPreferredWidth( prefs.getInt( "column1width", 100 ) );
|
||||||
|
columnModel.getColumn( 1 ).setPreferredWidth( prefs.getInt( "column2width", 100 ) );
|
||||||
|
|
||||||
|
// restore filter
|
||||||
|
String filter = prefs.get( "filter", "" );
|
||||||
|
String valueType = prefs.get( "valueType", null );
|
||||||
|
if( filter != null && !filter.isEmpty() )
|
||||||
|
filterField.setText( filter );
|
||||||
|
if( valueType != null )
|
||||||
|
valueTypeField.setSelectedItem( valueType );
|
||||||
|
|
||||||
|
UIManager.addPropertyChangeListener( lafListener );
|
||||||
|
UIManager.getDefaults().addPropertyChangeListener( lafDefaultsListener );
|
||||||
|
|
||||||
|
// register F5 key to refresh
|
||||||
|
((JComponent)frame.getContentPane()).registerKeyboardAction(
|
||||||
|
e -> refresh(),
|
||||||
|
KeyStroke.getKeyStroke( KeyEvent.VK_F5, 0, false ),
|
||||||
|
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
|
||||||
|
|
||||||
|
// register ESC key to close frame
|
||||||
|
((JComponent)frame.getContentPane()).registerKeyboardAction(
|
||||||
|
e -> frame.dispose(),
|
||||||
|
KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0, false ),
|
||||||
|
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void delegateKey( int keyCode, String actionKey ) {
|
||||||
|
KeyStroke keyStroke = KeyStroke.getKeyStroke( keyCode, 0 );
|
||||||
|
String actionMapKey = "delegate-" + actionKey;
|
||||||
|
|
||||||
|
filterField.getInputMap().put( keyStroke, actionMapKey );
|
||||||
|
filterField.getActionMap().put( actionMapKey, new AbstractAction() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed( ActionEvent e ) {
|
||||||
|
Action action = scrollPane.getActionMap().get( actionKey );
|
||||||
|
if( action != null ) {
|
||||||
|
action.actionPerformed( new ActionEvent( scrollPane,
|
||||||
|
e.getID(), actionKey, e.getWhen(), e.getModifiers() ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ensureOnScreen() {
|
||||||
|
Rectangle frameBounds = frame.getBounds();
|
||||||
|
boolean onScreen = false;
|
||||||
|
for( GraphicsDevice screen : GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices() ) {
|
||||||
|
GraphicsConfiguration gc = screen.getDefaultConfiguration();
|
||||||
|
Rectangle screenBounds = FlatUIUtils.subtractInsets( gc.getBounds(),
|
||||||
|
Toolkit.getDefaultToolkit().getScreenInsets( gc ) );
|
||||||
|
if( frameBounds.intersects( screenBounds ) ) {
|
||||||
|
onScreen = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !onScreen )
|
||||||
|
frame.setLocationRelativeTo( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
void lafChanged( PropertyChangeEvent e ) {
|
||||||
|
if( "lookAndFeel".equals( e.getPropertyName() ) )
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
void lafDefaultsChanged( PropertyChangeEvent e ) {
|
||||||
|
if( refreshPending )
|
||||||
|
return;
|
||||||
|
|
||||||
|
refreshPending = true;
|
||||||
|
EventQueue.invokeLater( () -> {
|
||||||
|
refresh();
|
||||||
|
refreshPending = false;
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
void refresh() {
|
||||||
|
ItemsTableModel model = (ItemsTableModel) table.getModel();
|
||||||
|
model.setItems( getUIDefaultsItems() );
|
||||||
|
|
||||||
|
updateWindowTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Item[] getUIDefaultsItems() {
|
||||||
|
UIDefaults defaults = UIManager.getDefaults();
|
||||||
|
UIDefaults lafDefaults = UIManager.getLookAndFeelDefaults();
|
||||||
|
|
||||||
|
Set<Entry<Object, Object>> defaultsSet = defaults.entrySet();
|
||||||
|
ArrayList<Item> items = new ArrayList<>( defaultsSet.size() );
|
||||||
|
HashSet<Object> keys = new HashSet<>( defaultsSet.size() );
|
||||||
|
for( Entry<Object,Object> e : defaultsSet ) {
|
||||||
|
Object key = e.getKey();
|
||||||
|
|
||||||
|
// ignore non-string keys
|
||||||
|
if( !(key instanceof String) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// ignore values of type Class
|
||||||
|
Object value = defaults.get( key );
|
||||||
|
if( value instanceof Class )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// avoid duplicate keys if UIManager.put(key,value) was used to override a LaF value
|
||||||
|
if( !keys.add( key ) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// check whether key was overridden using UIManager.put(key,value)
|
||||||
|
Object lafValue = null;
|
||||||
|
if( defaults.containsKey( key ) )
|
||||||
|
lafValue = lafDefaults.get( key );
|
||||||
|
|
||||||
|
// add item
|
||||||
|
items.add( new Item( String.valueOf( key ), value, lafValue ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
return items.toArray( new Item[items.size()] );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateWindowTitle() {
|
||||||
|
frame.setTitle( title + " - " + UIManager.getLookAndFeel().getName() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveWindowBounds() {
|
||||||
|
Preferences prefs = getPrefs();
|
||||||
|
prefs.putInt( "x", frame.getX() );
|
||||||
|
prefs.putInt( "y", frame.getY() );
|
||||||
|
prefs.putInt( "width", frame.getWidth() );
|
||||||
|
prefs.putInt( "height", frame.getHeight() );
|
||||||
|
|
||||||
|
TableColumnModel columnModel = table.getColumnModel();
|
||||||
|
prefs.putInt( "column1width", columnModel.getColumn( 0 ).getWidth() );
|
||||||
|
prefs.putInt( "column2width", columnModel.getColumn( 1 ).getWidth() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private Preferences getPrefs() {
|
||||||
|
return Preferences.userRoot().node( "flatlaf-uidefaults-inspector" );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void windowClosed() {
|
||||||
|
UIManager.removePropertyChangeListener( lafListener );
|
||||||
|
UIManager.getDefaults().removePropertyChangeListener( lafDefaultsListener );
|
||||||
|
|
||||||
|
inspector = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void filterChanged() {
|
||||||
|
String filter = filterField.getText().trim();
|
||||||
|
String valueType = (String) valueTypeField.getSelectedItem();
|
||||||
|
|
||||||
|
// split filter string on space characters
|
||||||
|
String[] filters = filter.split( " +" );
|
||||||
|
for( int i = 0; i < filters.length; i++ )
|
||||||
|
filters[i] = filters[i].toLowerCase( Locale.ENGLISH );
|
||||||
|
|
||||||
|
ItemsTableModel model = (ItemsTableModel) table.getModel();
|
||||||
|
model.setFilter( item -> {
|
||||||
|
if( valueType != null &&
|
||||||
|
!valueType.equals( "(any)" ) &&
|
||||||
|
!valueType.equals( typeOfValue( item.value ) ) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
String lkey = item.key.toLowerCase( Locale.ENGLISH );
|
||||||
|
String lvalue = item.getValueAsString().toLowerCase( Locale.ENGLISH );
|
||||||
|
for( String f : filters ) {
|
||||||
|
if( lkey.contains( f ) || lvalue.contains( f ) )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} );
|
||||||
|
|
||||||
|
Preferences prefs = getPrefs();
|
||||||
|
prefs.put( "filter", filter );
|
||||||
|
prefs.put( "valueType", valueType );
|
||||||
|
}
|
||||||
|
|
||||||
|
private String typeOfValue( Object value ) {
|
||||||
|
if( value instanceof Boolean )
|
||||||
|
return "Boolean";
|
||||||
|
if( value instanceof Border )
|
||||||
|
return "Border";
|
||||||
|
if( value instanceof Color )
|
||||||
|
return "Color";
|
||||||
|
if( value instanceof Dimension )
|
||||||
|
return "Dimension";
|
||||||
|
if( value instanceof Float )
|
||||||
|
return "Float";
|
||||||
|
if( value instanceof Font )
|
||||||
|
return "Font";
|
||||||
|
if( value instanceof Icon )
|
||||||
|
return "Icon";
|
||||||
|
if( value instanceof Insets )
|
||||||
|
return "Insets";
|
||||||
|
if( value instanceof Integer )
|
||||||
|
return "Integer";
|
||||||
|
if( value instanceof String )
|
||||||
|
return "String";
|
||||||
|
return "(other)";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents() {
|
||||||
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
|
frame = new JFrame();
|
||||||
|
panel = new JPanel();
|
||||||
|
filterPanel = new JPanel();
|
||||||
|
flterLabel = new JLabel();
|
||||||
|
filterField = new JTextField();
|
||||||
|
valueTypeLabel = new JLabel();
|
||||||
|
valueTypeField = new JComboBox<>();
|
||||||
|
scrollPane = new JScrollPane();
|
||||||
|
table = new JTable();
|
||||||
|
|
||||||
|
//======== frame ========
|
||||||
|
{
|
||||||
|
frame.setTitle("UI Defaults Inspector");
|
||||||
|
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||||
|
frame.addWindowListener(new WindowAdapter() {
|
||||||
|
@Override
|
||||||
|
public void windowClosed(WindowEvent e) {
|
||||||
|
FlatUIDefaultsInspector.this.windowClosed();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void windowClosing(WindowEvent e) {
|
||||||
|
saveWindowBounds();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void windowDeactivated(WindowEvent e) {
|
||||||
|
saveWindowBounds();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Container frameContentPane = frame.getContentPane();
|
||||||
|
frameContentPane.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//======== panel ========
|
||||||
|
{
|
||||||
|
panel.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//======== filterPanel ========
|
||||||
|
{
|
||||||
|
filterPanel.setLayout(new GridBagLayout());
|
||||||
|
((GridBagLayout)filterPanel.getLayout()).columnWidths = new int[] {0, 0, 0, 0, 0};
|
||||||
|
((GridBagLayout)filterPanel.getLayout()).rowHeights = new int[] {0, 0};
|
||||||
|
((GridBagLayout)filterPanel.getLayout()).columnWeights = new double[] {0.0, 1.0, 0.0, 0.0, 1.0E-4};
|
||||||
|
((GridBagLayout)filterPanel.getLayout()).rowWeights = new double[] {0.0, 1.0E-4};
|
||||||
|
|
||||||
|
//---- flterLabel ----
|
||||||
|
flterLabel.setText("Filter:");
|
||||||
|
flterLabel.setLabelFor(filterField);
|
||||||
|
flterLabel.setDisplayedMnemonic('F');
|
||||||
|
filterPanel.add(flterLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
|
||||||
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
|
new Insets(0, 0, 0, 10), 0, 0));
|
||||||
|
|
||||||
|
//---- filterField ----
|
||||||
|
filterField.putClientProperty("JTextField.placeholderText", "enter one or more filter strings, separated by space characters");
|
||||||
|
filterPanel.add(filterField, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
|
||||||
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
|
new Insets(0, 0, 0, 10), 0, 0));
|
||||||
|
|
||||||
|
//---- valueTypeLabel ----
|
||||||
|
valueTypeLabel.setText("Value Type:");
|
||||||
|
valueTypeLabel.setLabelFor(valueTypeField);
|
||||||
|
valueTypeLabel.setDisplayedMnemonic('T');
|
||||||
|
filterPanel.add(valueTypeLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
|
||||||
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
|
new Insets(0, 0, 0, 10), 0, 0));
|
||||||
|
|
||||||
|
//---- valueTypeField ----
|
||||||
|
valueTypeField.setModel(new DefaultComboBoxModel<>(new String[] {
|
||||||
|
"(any)",
|
||||||
|
"Boolean",
|
||||||
|
"Border",
|
||||||
|
"Color",
|
||||||
|
"Dimension",
|
||||||
|
"Float",
|
||||||
|
"Font",
|
||||||
|
"Icon",
|
||||||
|
"Insets",
|
||||||
|
"Integer",
|
||||||
|
"String",
|
||||||
|
"(other)"
|
||||||
|
}));
|
||||||
|
valueTypeField.addActionListener(e -> filterChanged());
|
||||||
|
filterPanel.add(valueTypeField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0,
|
||||||
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
|
new Insets(0, 0, 0, 0), 0, 0));
|
||||||
|
}
|
||||||
|
panel.add(filterPanel, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
//======== scrollPane ========
|
||||||
|
{
|
||||||
|
|
||||||
|
//---- table ----
|
||||||
|
table.setAutoCreateRowSorter(true);
|
||||||
|
scrollPane.setViewportView(table);
|
||||||
|
}
|
||||||
|
panel.add(scrollPane, BorderLayout.CENTER);
|
||||||
|
}
|
||||||
|
frameContentPane.add(panel, BorderLayout.CENTER);
|
||||||
|
}
|
||||||
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
}
|
||||||
|
|
||||||
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
|
private JFrame frame;
|
||||||
|
private JPanel panel;
|
||||||
|
private JPanel filterPanel;
|
||||||
|
private JLabel flterLabel;
|
||||||
|
private JTextField filterField;
|
||||||
|
private JLabel valueTypeLabel;
|
||||||
|
private JComboBox<String> valueTypeField;
|
||||||
|
private JScrollPane scrollPane;
|
||||||
|
private JTable table;
|
||||||
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
|
||||||
|
//---- class Item ---------------------------------------------------------
|
||||||
|
|
||||||
|
private static class Item {
|
||||||
|
final String key;
|
||||||
|
final Object value;
|
||||||
|
final Object lafValue;
|
||||||
|
|
||||||
|
private String valueStr;
|
||||||
|
|
||||||
|
Item( String key, Object value, Object lafValue ) {
|
||||||
|
this.key = key;
|
||||||
|
this.value = value;
|
||||||
|
this.lafValue = lafValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String getValueAsString() {
|
||||||
|
if( valueStr == null )
|
||||||
|
valueStr = valueAsString( value );
|
||||||
|
return valueStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static String valueAsString( Object value ) {
|
||||||
|
if( value instanceof Color ) {
|
||||||
|
Color color = (Color) value;
|
||||||
|
HSLColor hslColor = new HSLColor( color );
|
||||||
|
if( color.getAlpha() == 255 ) {
|
||||||
|
return String.format( "%s rgb(%d, %d, %d) hsl(%d, %d, %d)",
|
||||||
|
color2hex( color ),
|
||||||
|
color.getRed(), color.getGreen(), color.getBlue(),
|
||||||
|
(int) hslColor.getHue(), (int) hslColor.getSaturation(),
|
||||||
|
(int) hslColor.getLuminance() );
|
||||||
|
} else {
|
||||||
|
return String.format( "%s rgba(%d, %d, %d, %d) hsla(%d, %d, %d, %d)",
|
||||||
|
color2hex( color ),
|
||||||
|
color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha(),
|
||||||
|
(int) hslColor.getHue(), (int) hslColor.getSaturation(),
|
||||||
|
(int) hslColor.getLuminance(), (int) (hslColor.getAlpha() * 100) );
|
||||||
|
}
|
||||||
|
} else if( value instanceof Insets ) {
|
||||||
|
Insets insets = (Insets) value;
|
||||||
|
return insets.top + "," + insets.left + "," + insets.bottom + "," + insets.right;
|
||||||
|
} else if( value instanceof Dimension ) {
|
||||||
|
Dimension dim = (Dimension) value;
|
||||||
|
return dim.width + "," + dim.height;
|
||||||
|
} else if( value instanceof Font ) {
|
||||||
|
Font font = (Font) value;
|
||||||
|
String s = font.getFamily() + " " + font.getSize();
|
||||||
|
if( font.isBold() )
|
||||||
|
s += " bold";
|
||||||
|
if( font.isItalic() )
|
||||||
|
s += " italic";
|
||||||
|
return s;
|
||||||
|
} else if( value instanceof Icon ) {
|
||||||
|
Icon icon = (Icon) value;
|
||||||
|
return icon.getIconWidth() + "x" + icon.getIconHeight() + " " + icon.getClass().getName();
|
||||||
|
} else if( value instanceof Border ) {
|
||||||
|
Border border = (Border) value;
|
||||||
|
if( border instanceof FlatLineBorder ) {
|
||||||
|
FlatLineBorder lineBorder = (FlatLineBorder) border;
|
||||||
|
return valueAsString( lineBorder.getUnscaledBorderInsets() )
|
||||||
|
+ " " + Item.color2hex( lineBorder.getLineColor() )
|
||||||
|
+ " " + lineBorder.getLineThickness()
|
||||||
|
+ " " + border.getClass().getName();
|
||||||
|
} else if( border instanceof EmptyBorder ) {
|
||||||
|
Insets insets = (border instanceof FlatEmptyBorder)
|
||||||
|
? ((FlatEmptyBorder)border).getUnscaledBorderInsets()
|
||||||
|
: ((EmptyBorder)border).getBorderInsets();
|
||||||
|
return valueAsString( insets ) + " " + border.getClass().getName();
|
||||||
|
} else if( border instanceof FlatBorder || border instanceof FlatMarginBorder )
|
||||||
|
return border.getClass().getName();
|
||||||
|
else
|
||||||
|
return String.valueOf( value );
|
||||||
|
} else if( value instanceof GrayFilter ) {
|
||||||
|
GrayFilter grayFilter = (GrayFilter) value;
|
||||||
|
return grayFilter.getBrightness() + "," + grayFilter.getContrast()
|
||||||
|
+ " " + grayFilter.getAlpha() + " " + grayFilter.getClass().getName();
|
||||||
|
} else if( value instanceof ActionMap ) {
|
||||||
|
ActionMap actionMap = (ActionMap) value;
|
||||||
|
return "ActionMap (" + actionMap.size() + ")";
|
||||||
|
} else if( value instanceof InputMap ) {
|
||||||
|
InputMap inputMap = (InputMap) value;
|
||||||
|
return "InputMap (" + inputMap.size() + ")";
|
||||||
|
} else if( value instanceof Object[] )
|
||||||
|
return Arrays.toString( (Object[]) value );
|
||||||
|
else if( value instanceof int[] )
|
||||||
|
return Arrays.toString( (int[]) value );
|
||||||
|
else
|
||||||
|
return String.valueOf( value );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String color2hex( Color color ) {
|
||||||
|
int rgb = color.getRGB();
|
||||||
|
boolean hasAlpha = color.getAlpha() != 255;
|
||||||
|
|
||||||
|
boolean useShortFormat =
|
||||||
|
(rgb & 0xf0000000) == (rgb & 0xf000000) << 4 &&
|
||||||
|
(rgb & 0xf00000) == (rgb & 0xf0000) << 4 &&
|
||||||
|
(rgb & 0xf000) == (rgb & 0xf00) << 4 &&
|
||||||
|
(rgb & 0xf0) == (rgb & 0xf) << 4;
|
||||||
|
|
||||||
|
if( useShortFormat ) {
|
||||||
|
int srgb = ((rgb & 0xf0000) >> 8) | ((rgb & 0xf00) >> 4) | (rgb & 0xf);
|
||||||
|
return String.format( hasAlpha ? "#%03X%X" : "#%03X", srgb, (rgb >> 24) & 0xf );
|
||||||
|
} else
|
||||||
|
return String.format( hasAlpha ? "#%06X%02X" : "#%06X", rgb & 0xffffff, (rgb >> 24) & 0xff );
|
||||||
|
}
|
||||||
|
|
||||||
|
// used for sorting by value
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return getValueAsString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class ItemsTableModel ----------------------------------------------
|
||||||
|
|
||||||
|
private static class ItemsTableModel
|
||||||
|
extends AbstractTableModel
|
||||||
|
{
|
||||||
|
private Item[] allItems;
|
||||||
|
private Item[] items;
|
||||||
|
private Predicate<Item> filter;
|
||||||
|
|
||||||
|
ItemsTableModel( Item[] items ) {
|
||||||
|
this.allItems = this.items = items;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setItems( Item[] items ) {
|
||||||
|
this.allItems = this.items = items;
|
||||||
|
setFilter( filter );
|
||||||
|
}
|
||||||
|
|
||||||
|
void setFilter( Predicate<Item> filter ) {
|
||||||
|
this.filter = filter;
|
||||||
|
|
||||||
|
if( filter != null ) {
|
||||||
|
ArrayList<Item> list = new ArrayList<>( allItems.length );
|
||||||
|
for( Item item : allItems ) {
|
||||||
|
if( filter.test( item ) )
|
||||||
|
list.add( item );
|
||||||
|
}
|
||||||
|
items = list.toArray( new Item[list.size()] );
|
||||||
|
} else
|
||||||
|
items = allItems;
|
||||||
|
|
||||||
|
fireTableDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRowCount() {
|
||||||
|
return items.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColumnCount() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnName( int columnIndex ) {
|
||||||
|
switch( columnIndex ) {
|
||||||
|
case 0: return "Name";
|
||||||
|
case 1: return "Value";
|
||||||
|
}
|
||||||
|
return super.getColumnName( columnIndex );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<?> getColumnClass( int columnIndex ) {
|
||||||
|
switch( columnIndex ) {
|
||||||
|
case 0: return String.class;
|
||||||
|
case 1: return Item.class;
|
||||||
|
}
|
||||||
|
return super.getColumnClass( columnIndex );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getValueAt( int rowIndex, int columnIndex ) {
|
||||||
|
Item item = items[rowIndex];
|
||||||
|
switch( columnIndex ) {
|
||||||
|
case 0: return item.key;
|
||||||
|
case 1: return item;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class Renderer -----------------------------------------------------
|
||||||
|
|
||||||
|
private static class Renderer
|
||||||
|
extends DefaultTableCellRenderer
|
||||||
|
{
|
||||||
|
protected boolean selected;
|
||||||
|
protected boolean first;
|
||||||
|
|
||||||
|
protected void init( JTable table, String key, boolean selected, int row ) {
|
||||||
|
this.selected = selected;
|
||||||
|
|
||||||
|
first = false;
|
||||||
|
if( row > 0 ) {
|
||||||
|
String previousKey = (String) table.getValueAt( row - 1, 0 );
|
||||||
|
int dot = key.indexOf( '.' );
|
||||||
|
if( dot > 0 ) {
|
||||||
|
String prefix = key.substring( 0, dot + 1 );
|
||||||
|
first = !previousKey.startsWith( prefix );
|
||||||
|
} else
|
||||||
|
first = previousKey.indexOf( '.' ) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void paintSeparator( Graphics g ) {
|
||||||
|
if( first && !selected ) {
|
||||||
|
g.setColor( FlatLaf.isLafDark() ? Color.gray : Color.lightGray );
|
||||||
|
g.fillRect( 0, 0, getWidth() - 1, 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String layoutLabel( FontMetrics fm, String text, Rectangle textR ) {
|
||||||
|
int width = getWidth();
|
||||||
|
int height = getHeight();
|
||||||
|
Insets insets = getInsets();
|
||||||
|
|
||||||
|
Rectangle viewR = new Rectangle( insets.left, insets.top,
|
||||||
|
width - (insets.left + insets.right),
|
||||||
|
height - (insets.top + insets.bottom) );
|
||||||
|
Rectangle iconR = new Rectangle();
|
||||||
|
|
||||||
|
return SwingUtilities.layoutCompoundLabel( this, fm, text, null,
|
||||||
|
getVerticalAlignment(), getHorizontalAlignment(),
|
||||||
|
getVerticalTextPosition(), getHorizontalTextPosition(),
|
||||||
|
viewR, iconR, textR, getIconTextGap() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class KeyRenderer --------------------------------------------------
|
||||||
|
|
||||||
|
private static class KeyRenderer
|
||||||
|
extends Renderer
|
||||||
|
{
|
||||||
|
private String key;
|
||||||
|
private boolean isOverridden;
|
||||||
|
private Icon overriddenIcon;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getTableCellRendererComponent( JTable table, Object value,
|
||||||
|
boolean isSelected, boolean hasFocus, int row, int column )
|
||||||
|
{
|
||||||
|
key = (String) value;
|
||||||
|
init( table, key, isSelected, row );
|
||||||
|
|
||||||
|
Item item = (Item) table.getValueAt( row, 1 );
|
||||||
|
isOverridden = (item.lafValue != null);
|
||||||
|
|
||||||
|
// set tooltip
|
||||||
|
String toolTipText = key;
|
||||||
|
if( isOverridden )
|
||||||
|
toolTipText += " \n\nLaF UI default value was overridden with UIManager.put(key,value).";
|
||||||
|
setToolTipText( toolTipText );
|
||||||
|
|
||||||
|
return super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintComponent( Graphics g ) {
|
||||||
|
g.setColor( getBackground() );
|
||||||
|
g.fillRect( 0, 0, getWidth(), getHeight() );
|
||||||
|
|
||||||
|
FontMetrics fm = getFontMetrics( getFont() );
|
||||||
|
Rectangle textR = new Rectangle();
|
||||||
|
String clippedText = layoutLabel( fm, key, textR );
|
||||||
|
int x = textR.x;
|
||||||
|
int y = textR.y + fm.getAscent();
|
||||||
|
|
||||||
|
int dot = key.indexOf( '.' );
|
||||||
|
if( dot > 0 && !selected ) {
|
||||||
|
g.setColor( FlatUIUtils.getUIColor( "Label.disabledForeground",
|
||||||
|
FlatUIUtils.getUIColor( "Label.disabledText", Color.gray ) ) );
|
||||||
|
|
||||||
|
if( dot >= clippedText.length() )
|
||||||
|
FlatUIUtils.drawString( this, g, clippedText, x, y );
|
||||||
|
else {
|
||||||
|
String prefix = clippedText.substring( 0, dot + 1 );
|
||||||
|
String subkey = clippedText.substring( dot + 1 );
|
||||||
|
|
||||||
|
FlatUIUtils.drawString( this, g, prefix, x, y );
|
||||||
|
|
||||||
|
g.setColor( getForeground() );
|
||||||
|
FlatUIUtils.drawString( this, g, subkey, x + fm.stringWidth( prefix ), y );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
g.setColor( getForeground() );
|
||||||
|
FlatUIUtils.drawString( this, g, clippedText, x, y );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( isOverridden ) {
|
||||||
|
if( overriddenIcon == null ) {
|
||||||
|
overriddenIcon = new FlatAbstractIcon( 16, 16, null ) {
|
||||||
|
@Override
|
||||||
|
protected void paintIcon( Component c, Graphics2D g2 ) {
|
||||||
|
g2.setColor( FlatUIUtils.getUIColor( "Actions.Red", Color.red ) );
|
||||||
|
g2.setStroke( new BasicStroke( 2f ) );
|
||||||
|
g2.draw( FlatUIUtils.createPath( false, 3,10, 8,5, 13,10 ) );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
overriddenIcon.paintIcon( this, g,
|
||||||
|
getWidth() - overriddenIcon.getIconWidth(),
|
||||||
|
(getHeight() - overriddenIcon.getIconHeight()) / 2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
paintSeparator( g );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class ValueRenderer ------------------------------------------------
|
||||||
|
|
||||||
|
private static class ValueRenderer
|
||||||
|
extends Renderer
|
||||||
|
{
|
||||||
|
private Item item;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getTableCellRendererComponent( JTable table, Object value,
|
||||||
|
boolean isSelected, boolean hasFocus, int row, int column )
|
||||||
|
{
|
||||||
|
item = (Item) value;
|
||||||
|
init( table, item.key, isSelected, row );
|
||||||
|
|
||||||
|
// reset background, foreground and icon
|
||||||
|
if( !(item.value instanceof Color) ) {
|
||||||
|
setBackground( null );
|
||||||
|
setForeground( null );
|
||||||
|
}
|
||||||
|
if( !(item.value instanceof Icon) )
|
||||||
|
setIcon( null );
|
||||||
|
|
||||||
|
// value to string
|
||||||
|
value = item.getValueAsString();
|
||||||
|
|
||||||
|
super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
|
||||||
|
|
||||||
|
if( item.value instanceof Color ) {
|
||||||
|
Color color = (Color) item.value;
|
||||||
|
boolean isDark = new HSLColor( color ).getLuminance() < 70;
|
||||||
|
setBackground( color );
|
||||||
|
setForeground( isDark ? Color.white : Color.black );
|
||||||
|
} else if( item.value instanceof Icon ) {
|
||||||
|
Icon icon = (Icon) item.value;
|
||||||
|
setIcon( new SafeIcon( icon ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// set tooltip
|
||||||
|
String toolTipText = String.valueOf( item.value );
|
||||||
|
if( item.lafValue != null ) {
|
||||||
|
toolTipText += " \n\nLaF UI default value was overridden with UIManager.put(key,value):\n "
|
||||||
|
+ Item.valueAsString( item.lafValue ) + "\n " + String.valueOf( item.lafValue );
|
||||||
|
}
|
||||||
|
setToolTipText( toolTipText );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintComponent( Graphics g ) {
|
||||||
|
if( item.value instanceof Color ) {
|
||||||
|
// fill background
|
||||||
|
g.setColor( getBackground() );
|
||||||
|
g.fillRect( 0, 0, getWidth(), getHeight() );
|
||||||
|
|
||||||
|
// layout text
|
||||||
|
FontMetrics fm = getFontMetrics( getFont() );
|
||||||
|
String text = getText();
|
||||||
|
Rectangle textR = new Rectangle();
|
||||||
|
layoutLabel( fm, text, textR );
|
||||||
|
int x = textR.x;
|
||||||
|
int y = textR.y + fm.getAscent();
|
||||||
|
|
||||||
|
g.setColor( getForeground() );
|
||||||
|
|
||||||
|
// paint rgb() and hsl() horizontally aligned
|
||||||
|
int rgbIndex = text.indexOf( "rgb" );
|
||||||
|
int hslIndex = text.indexOf( "hsl" );
|
||||||
|
if( rgbIndex > 0 && hslIndex > rgbIndex ) {
|
||||||
|
String hexText = text.substring( 0, rgbIndex );
|
||||||
|
String rgbText = text.substring( rgbIndex, hslIndex );
|
||||||
|
String hslText = text.substring( hslIndex );
|
||||||
|
int hexWidth = Math.max( fm.stringWidth( hexText ), fm.stringWidth( "#DDDDDD " ) );
|
||||||
|
int rgbWidth = Math.max( fm.stringWidth( rgbText ), fm.stringWidth( "rgb(444, 444, 444) " ) );
|
||||||
|
FlatUIUtils.drawString( this, g, hexText, x, y );
|
||||||
|
FlatUIUtils.drawString( this, g, rgbText, x + hexWidth, y );
|
||||||
|
FlatUIUtils.drawString( this, g, hslText, x + hexWidth + rgbWidth, y );
|
||||||
|
} else
|
||||||
|
FlatUIUtils.drawString( this, g, text, x, y );
|
||||||
|
} else
|
||||||
|
super.paintComponent( g );
|
||||||
|
|
||||||
|
paintSeparator( g );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class SafeIcon -----------------------------------------------------
|
||||||
|
|
||||||
|
private static class SafeIcon
|
||||||
|
implements Icon
|
||||||
|
{
|
||||||
|
private final Icon icon;
|
||||||
|
|
||||||
|
SafeIcon( Icon icon ) {
|
||||||
|
this.icon = icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paintIcon( Component c, Graphics g, int x, int y ) {
|
||||||
|
int width = getIconWidth();
|
||||||
|
int height = getIconHeight();
|
||||||
|
|
||||||
|
try {
|
||||||
|
g.setColor( UIManager.getColor( "Panel.background" ) );
|
||||||
|
g.fillRect( x, y, width, height );
|
||||||
|
|
||||||
|
icon.paintIcon( c, g, x, y );
|
||||||
|
} catch( Exception ex ) {
|
||||||
|
g.setColor( Color.red );
|
||||||
|
g.drawRect( x, y, width - 1, height - 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getIconWidth() {
|
||||||
|
return icon.getIconWidth();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getIconHeight() {
|
||||||
|
return icon.getIconHeight();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
JFDML JFormDesigner: "7.0.2.0.298" Java: "14" encoding: "UTF-8"
|
||||||
|
|
||||||
|
new FormModel {
|
||||||
|
contentType: "form/swing"
|
||||||
|
root: new FormRoot {
|
||||||
|
add( new FormWindow( "javax.swing.JFrame", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
|
name: "frame"
|
||||||
|
"title": "UI Defaults Inspector"
|
||||||
|
"defaultCloseOperation": 2
|
||||||
|
"$sizePolicy": 2
|
||||||
|
"$locationPolicy": 2
|
||||||
|
addEvent( new FormEvent( "java.awt.event.WindowListener", "windowClosed", "windowClosed", false ) )
|
||||||
|
addEvent( new FormEvent( "java.awt.event.WindowListener", "windowClosing", "saveWindowBounds", false ) )
|
||||||
|
addEvent( new FormEvent( "java.awt.event.WindowListener", "windowDeactivated", "saveWindowBounds", false ) )
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
|
name: "panel"
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.GridBagLayout ) {
|
||||||
|
"$columnSpecs": "0, 0:1.0, 0, 0"
|
||||||
|
"$rowSpecs": "0"
|
||||||
|
"$hGap": 10
|
||||||
|
"$vGap": 5
|
||||||
|
"$alignLeft": true
|
||||||
|
"$alignTop": true
|
||||||
|
} ) {
|
||||||
|
name: "filterPanel"
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "flterLabel"
|
||||||
|
"text": "Filter:"
|
||||||
|
"labelFor": new FormReference( "filterField" )
|
||||||
|
"displayedMnemonic": 70
|
||||||
|
}, new FormLayoutConstraints( class com.jformdesigner.runtime.GridBagConstraintsEx ) )
|
||||||
|
add( new FormComponent( "javax.swing.JTextField" ) {
|
||||||
|
name: "filterField"
|
||||||
|
"$client.JTextField.placeholderText": "enter one or more filter strings, separated by space characters"
|
||||||
|
}, new FormLayoutConstraints( class com.jformdesigner.runtime.GridBagConstraintsEx ) {
|
||||||
|
"gridx": 1
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "valueTypeLabel"
|
||||||
|
"text": "Value Type:"
|
||||||
|
"labelFor": new FormReference( "valueTypeField" )
|
||||||
|
"displayedMnemonic": 84
|
||||||
|
}, new FormLayoutConstraints( class com.jformdesigner.runtime.GridBagConstraintsEx ) {
|
||||||
|
"gridx": 2
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "valueTypeField"
|
||||||
|
"model": new javax.swing.DefaultComboBoxModel {
|
||||||
|
selectedItem: "(any)"
|
||||||
|
addElement( "(any)" )
|
||||||
|
addElement( "Boolean" )
|
||||||
|
addElement( "Border" )
|
||||||
|
addElement( "Color" )
|
||||||
|
addElement( "Dimension" )
|
||||||
|
addElement( "Float" )
|
||||||
|
addElement( "Font" )
|
||||||
|
addElement( "Icon" )
|
||||||
|
addElement( "Insets" )
|
||||||
|
addElement( "Integer" )
|
||||||
|
addElement( "String" )
|
||||||
|
addElement( "(other)" )
|
||||||
|
}
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.typeParameters": "String"
|
||||||
|
}
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "filterChanged", false ) )
|
||||||
|
}, new FormLayoutConstraints( class com.jformdesigner.runtime.GridBagConstraintsEx ) {
|
||||||
|
"gridx": 3
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "North"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
|
||||||
|
name: "scrollPane"
|
||||||
|
add( new FormComponent( "javax.swing.JTable" ) {
|
||||||
|
name: "table"
|
||||||
|
"autoCreateRowSorter": true
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 0 )
|
||||||
|
"size": new java.awt.Dimension( 400, 300 )
|
||||||
|
} )
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
module com.formdev.flatlaf.extras {
|
module com.formdev.flatlaf.extras {
|
||||||
requires java.desktop;
|
requires java.desktop;
|
||||||
|
requires java.prefs;
|
||||||
requires static com.kitfox.svg; // optional at runtime
|
requires static com.kitfox.svg; // optional at runtime
|
||||||
requires com.formdev.flatlaf;
|
requires com.formdev.flatlaf;
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"*": {
|
"*": {
|
||||||
|
"acceleratorForeground": "colorAcceleratorForeground",
|
||||||
|
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground",
|
||||||
"background": "colorBackground",
|
"background": "colorBackground",
|
||||||
"caretForeground": "colorForeground",
|
"caretForeground": "colorForeground",
|
||||||
"disabledForeground": "colorDisabledForeground",
|
"disabledForeground": "colorDisabledForeground",
|
||||||
@@ -68,10 +70,7 @@
|
|||||||
"startBorderColor": "#476069"
|
"startBorderColor": "#476069"
|
||||||
},
|
},
|
||||||
"CheckBox": {},
|
"CheckBox": {},
|
||||||
"CheckBoxMenuItem": {
|
"CheckBoxMenuItem": {},
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground"
|
|
||||||
},
|
|
||||||
"ColorChooser": {
|
"ColorChooser": {
|
||||||
"swatchesDefaultRecentColor": "colorBackground"
|
"swatchesDefaultRecentColor": "colorBackground"
|
||||||
},
|
},
|
||||||
@@ -257,8 +256,6 @@
|
|||||||
"usedBackground": "#566C73"
|
"usedBackground": "#566C73"
|
||||||
},
|
},
|
||||||
"Menu": {
|
"Menu": {
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground",
|
|
||||||
"borderColor": "colorSeparator",
|
"borderColor": "colorSeparator",
|
||||||
"separatorColor": "colorSeparator"
|
"separatorColor": "colorSeparator"
|
||||||
},
|
},
|
||||||
@@ -372,10 +369,7 @@
|
|||||||
"trackColor": "#36525B"
|
"trackColor": "#36525B"
|
||||||
},
|
},
|
||||||
"RadioButton": {},
|
"RadioButton": {},
|
||||||
"RadioButtonMenuItem": {
|
"RadioButtonMenuItem": {},
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground"
|
|
||||||
},
|
|
||||||
"ScrollBar": {
|
"ScrollBar": {
|
||||||
"background": "#14414F",
|
"background": "#14414F",
|
||||||
"hoverThumbBorderColor": "#0A384459",
|
"hoverThumbBorderColor": "#0A384459",
|
||||||
@@ -441,6 +435,11 @@
|
|||||||
"Separator": {
|
"Separator": {
|
||||||
"separatorColor": "colorSeparator"
|
"separatorColor": "colorSeparator"
|
||||||
},
|
},
|
||||||
|
"Settings": {
|
||||||
|
"Spotlight": {
|
||||||
|
"borderColor": "#9A670064"
|
||||||
|
}
|
||||||
|
},
|
||||||
"SidePanel": {
|
"SidePanel": {
|
||||||
"background": "#0E4155"
|
"background": "#0E4155"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"*": {
|
"*": {
|
||||||
|
"acceleratorForeground": "colorAcceleratorForeground",
|
||||||
|
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground",
|
||||||
"background": "colorBackground",
|
"background": "colorBackground",
|
||||||
"caretForeground": "colorForeground",
|
"caretForeground": "colorForeground",
|
||||||
"disabledForeground": "colorDisabledForeground",
|
"disabledForeground": "colorDisabledForeground",
|
||||||
@@ -68,10 +70,7 @@
|
|||||||
"startBorderColor": "#B4BAB5"
|
"startBorderColor": "#B4BAB5"
|
||||||
},
|
},
|
||||||
"CheckBox": {},
|
"CheckBox": {},
|
||||||
"CheckBoxMenuItem": {
|
"CheckBoxMenuItem": {},
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground"
|
|
||||||
},
|
|
||||||
"ColorChooser": {
|
"ColorChooser": {
|
||||||
"swatchesDefaultRecentColor": "#CFD0C3"
|
"swatchesDefaultRecentColor": "#CFD0C3"
|
||||||
},
|
},
|
||||||
@@ -263,8 +262,6 @@
|
|||||||
"usedBackground": "#ADB5AF"
|
"usedBackground": "#ADB5AF"
|
||||||
},
|
},
|
||||||
"Menu": {
|
"Menu": {
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground",
|
|
||||||
"borderColor": "#D3D2C6",
|
"borderColor": "#D3D2C6",
|
||||||
"disabledBackground": "colorBackground",
|
"disabledBackground": "colorBackground",
|
||||||
"separatorColor": "colorSeparator"
|
"separatorColor": "colorSeparator"
|
||||||
@@ -378,10 +375,7 @@
|
|||||||
"trackColor": "#BAC0B8"
|
"trackColor": "#BAC0B8"
|
||||||
},
|
},
|
||||||
"RadioButton": {},
|
"RadioButton": {},
|
||||||
"RadioButtonMenuItem": {
|
"RadioButtonMenuItem": {},
|
||||||
"acceleratorForeground": "colorAcceleratorForeground",
|
|
||||||
"acceleratorSelectionForeground": "colorAcceleratorSelectionForeground"
|
|
||||||
},
|
|
||||||
"ScrollBar": {
|
"ScrollBar": {
|
||||||
"background": "#F5F0E3",
|
"background": "#F5F0E3",
|
||||||
"hoverThumbBorderColor": "#4B5A5F47",
|
"hoverThumbBorderColor": "#4B5A5F47",
|
||||||
@@ -445,6 +439,11 @@
|
|||||||
"Separator": {
|
"Separator": {
|
||||||
"separatorColor": "colorSeparator"
|
"separatorColor": "colorSeparator"
|
||||||
},
|
},
|
||||||
|
"Settings": {
|
||||||
|
"Spotlight": {
|
||||||
|
"borderColor": "#F6C00064"
|
||||||
|
}
|
||||||
|
},
|
||||||
"SidePanel": {
|
"SidePanel": {
|
||||||
"background": "#E2E2D4"
|
"background": "#E2E2D4"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#---- BusyLabel ----
|
#---- BusyLabel ----
|
||||||
|
|
||||||
JXBusyLabel.baseColor=#777777
|
JXBusyLabel.baseColor=#777
|
||||||
JXBusyLabel.highlightColor=#e0e0e0
|
JXBusyLabel.highlightColor=#e0e0e0
|
||||||
|
|
||||||
|
|
||||||
@@ -38,8 +38,8 @@ Hyperlink.disabledText=@disabledText
|
|||||||
JXMonthView.background=@textComponentBackground
|
JXMonthView.background=@textComponentBackground
|
||||||
JXMonthView.monthStringBackground=#4c5052
|
JXMonthView.monthStringBackground=#4c5052
|
||||||
JXMonthView.monthStringForeground=@foreground
|
JXMonthView.monthStringForeground=@foreground
|
||||||
JXMonthView.daysOfTheWeekForeground=#aaaaaa
|
JXMonthView.daysOfTheWeekForeground=#aaa
|
||||||
JXMonthView.weekOfTheYearForeground=#888888
|
JXMonthView.weekOfTheYearForeground=#888
|
||||||
JXMonthView.unselectableDayForeground=#E05555
|
JXMonthView.unselectableDayForeground=#E05555
|
||||||
JXMonthView.selectedBackground=@selectionBackground
|
JXMonthView.selectedBackground=@selectionBackground
|
||||||
JXMonthView.flaggedDayForeground=#E05555
|
JXMonthView.flaggedDayForeground=#E05555
|
||||||
@@ -63,7 +63,7 @@ TaskPane.contentInsets=10,10,10,10
|
|||||||
|
|
||||||
TaskPane.titleBackgroundGradientStart=#4c5052
|
TaskPane.titleBackgroundGradientStart=#4c5052
|
||||||
TaskPane.titleForeground=@foreground
|
TaskPane.titleForeground=@foreground
|
||||||
TaskPane.titleOver=#888888
|
TaskPane.titleOver=#888
|
||||||
TaskPane.specialTitleBackground=#afafaf
|
TaskPane.specialTitleBackground=#afafaf
|
||||||
TaskPane.specialTitleForeground=#222222
|
TaskPane.specialTitleForeground=#222
|
||||||
TaskPane.specialTitleOver=#666666
|
TaskPane.specialTitleOver=#666
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ JXBusyLabel.highlightColor=#808080
|
|||||||
#---- Header ----
|
#---- Header ----
|
||||||
|
|
||||||
JXHeader.background=@background
|
JXHeader.background=@background
|
||||||
JXHeader.startBackground=#ffffff
|
JXHeader.startBackground=#fff
|
||||||
|
|
||||||
|
|
||||||
#---- Hyperlink ----
|
#---- Hyperlink ----
|
||||||
@@ -38,8 +38,8 @@ Hyperlink.disabledText=@disabledText
|
|||||||
JXMonthView.background=@textComponentBackground
|
JXMonthView.background=@textComponentBackground
|
||||||
JXMonthView.monthStringBackground=#dfdfdf
|
JXMonthView.monthStringBackground=#dfdfdf
|
||||||
JXMonthView.monthStringForeground=@foreground
|
JXMonthView.monthStringForeground=@foreground
|
||||||
JXMonthView.daysOfTheWeekForeground=#444444
|
JXMonthView.daysOfTheWeekForeground=#444
|
||||||
JXMonthView.weekOfTheYearForeground=#666666
|
JXMonthView.weekOfTheYearForeground=#666
|
||||||
JXMonthView.unselectableDayForeground=#E02222
|
JXMonthView.unselectableDayForeground=#E02222
|
||||||
JXMonthView.selectedBackground=#B9CEF8
|
JXMonthView.selectedBackground=#B9CEF8
|
||||||
JXMonthView.flaggedDayForeground=#E02222
|
JXMonthView.flaggedDayForeground=#E02222
|
||||||
@@ -62,8 +62,8 @@ TaskPane.borderColor=$Button.borderColor
|
|||||||
TaskPane.contentInsets=10,10,10,10
|
TaskPane.contentInsets=10,10,10,10
|
||||||
|
|
||||||
TaskPane.titleBackgroundGradientStart=#dfdfdf
|
TaskPane.titleBackgroundGradientStart=#dfdfdf
|
||||||
TaskPane.titleForeground=#222222
|
TaskPane.titleForeground=#222
|
||||||
TaskPane.titleOver=#666666
|
TaskPane.titleOver=#666
|
||||||
TaskPane.specialTitleBackground=#afafaf
|
TaskPane.specialTitleBackground=#afafaf
|
||||||
TaskPane.specialTitleForeground=#222222
|
TaskPane.specialTitleForeground=#222
|
||||||
TaskPane.specialTitleOver=#666666
|
TaskPane.specialTitleOver=#666
|
||||||
|
|||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.0
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.captionFont.height 12
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 5
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.smallCaptionFont.height 12
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.icon.font.height 12
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.menu.font.height 12
|
||||||
|
win.menu.height 19
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.messagebox.font.height 12
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.status.font.height 12
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.tooltip.font.height 12
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.captionFont.height 15
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 5
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.smallCaptionFont.height 15
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.icon.font.height 15
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.menu.font.height 15
|
||||||
|
win.menu.height 22
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.messagebox.font.height 15
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.status.font.height 15
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.tooltip.font.height 15
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 27
|
||||||
|
win.frame.captionButtonWidth 44
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.captionFont.height 18
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 27
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 5
|
||||||
|
win.frame.smallCaptionButtonHeight 27
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.smallCaptionFont.height 18
|
||||||
|
win.frame.smallCaptionHeight 27
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.icon.font.height 18
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.menu.font.height 18
|
||||||
|
win.menu.height 27
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.status.font.height 18
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.tooltip.font.height 18
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.25
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=13]
|
||||||
|
win.defaultGUI.font.height 13
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 28
|
||||||
|
win.frame.captionButtonWidth 46
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.frame.captionFont.height 19
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 28
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 6
|
||||||
|
win.frame.smallCaptionButtonHeight 28
|
||||||
|
win.frame.smallCaptionButtonWidth 28
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.frame.smallCaptionFont.height 19
|
||||||
|
win.frame.smallCaptionHeight 28
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.icon.font.height 19
|
||||||
|
win.icon.hspacing 143
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 94
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 24
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.menu.font.height 19
|
||||||
|
win.menu.height 28
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 21
|
||||||
|
win.scrollbar.width 21
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.status.font.height 19
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=19]
|
||||||
|
win.tooltip.font.height 19
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.25
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=13]
|
||||||
|
win.defaultGUI.font.height 13
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 34
|
||||||
|
win.frame.captionButtonWidth 56
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.frame.captionFont.height 23
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 34
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 6
|
||||||
|
win.frame.smallCaptionButtonHeight 34
|
||||||
|
win.frame.smallCaptionButtonWidth 28
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.frame.smallCaptionFont.height 23
|
||||||
|
win.frame.smallCaptionHeight 34
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.icon.font.height 23
|
||||||
|
win.icon.hspacing 143
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 94
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 24
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.menu.font.height 23
|
||||||
|
win.menu.height 34
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.messagebox.font.height 23
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 21
|
||||||
|
win.scrollbar.width 21
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.status.font.height 23
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=23]
|
||||||
|
win.tooltip.font.height 23
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.0
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 33
|
||||||
|
win.frame.captionButtonWidth 54
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.captionFont.height 18
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 33
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 8
|
||||||
|
win.frame.smallCaptionButtonHeight 33
|
||||||
|
win.frame.smallCaptionButtonWidth 33
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.smallCaptionFont.height 18
|
||||||
|
win.frame.smallCaptionHeight 33
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.icon.font.height 18
|
||||||
|
win.icon.hspacing 171
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 113
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 29
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.menu.font.height 18
|
||||||
|
win.menu.height 29
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 26
|
||||||
|
win.scrollbar.width 26
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.status.font.height 18
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.tooltip.font.height 18
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.75
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 33
|
||||||
|
win.frame.captionButtonWidth 54
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.frame.captionFont.height 22
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 33
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 8
|
||||||
|
win.frame.smallCaptionButtonHeight 33
|
||||||
|
win.frame.smallCaptionButtonWidth 33
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.frame.smallCaptionFont.height 22
|
||||||
|
win.frame.smallCaptionHeight 33
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.icon.font.height 22
|
||||||
|
win.icon.hspacing 171
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 113
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 29
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.menu.font.height 22
|
||||||
|
win.menu.height 32
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.messagebox.font.height 22
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 26
|
||||||
|
win.scrollbar.width 26
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.status.font.height 22
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=22]
|
||||||
|
win.tooltip.font.height 22
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 39
|
||||||
|
win.frame.captionButtonWidth 64
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.frame.captionFont.height 27
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 39
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 8
|
||||||
|
win.frame.smallCaptionButtonHeight 39
|
||||||
|
win.frame.smallCaptionButtonWidth 33
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.frame.smallCaptionFont.height 27
|
||||||
|
win.frame.smallCaptionHeight 39
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.icon.font.height 27
|
||||||
|
win.icon.hspacing 171
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 113
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 29
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.menu.font.height 27
|
||||||
|
win.menu.height 39
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.messagebox.font.height 27
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 26
|
||||||
|
win.scrollbar.width 26
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.status.font.height 27
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=27]
|
||||||
|
win.tooltip.font.height 27
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.75
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=19]
|
||||||
|
win.defaultGUI.font.height 19
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 39
|
||||||
|
win.frame.captionButtonWidth 64
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.frame.captionFont.height 26
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 39
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 9
|
||||||
|
win.frame.smallCaptionButtonHeight 39
|
||||||
|
win.frame.smallCaptionButtonWidth 39
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.frame.smallCaptionFont.height 26
|
||||||
|
win.frame.smallCaptionHeight 39
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.icon.font.height 26
|
||||||
|
win.icon.hspacing 200
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 131
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 33
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.menu.font.height 26
|
||||||
|
win.menu.height 39
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.messagebox.font.height 26
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 30
|
||||||
|
win.scrollbar.width 30
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.status.font.height 26
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=26]
|
||||||
|
win.tooltip.font.height 26
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.75
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.75
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=19]
|
||||||
|
win.defaultGUI.font.height 19
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 47
|
||||||
|
win.frame.captionButtonWidth 77
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.frame.captionFont.height 32
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 47
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 9
|
||||||
|
win.frame.smallCaptionButtonHeight 47
|
||||||
|
win.frame.smallCaptionButtonWidth 39
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.frame.smallCaptionFont.height 32
|
||||||
|
win.frame.smallCaptionHeight 47
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.icon.font.height 32
|
||||||
|
win.icon.hspacing 200
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 131
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 33
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.menu.font.height 32
|
||||||
|
win.menu.height 47
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.messagebox.font.height 32
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 30
|
||||||
|
win.scrollbar.width 30
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.status.font.height 32
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=32]
|
||||||
|
win.tooltip.font.height 32
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 2.0
|
||||||
|
Text scale: 1.0
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=21]
|
||||||
|
win.defaultGUI.font.height 21
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 44
|
||||||
|
win.frame.captionButtonWidth 72
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.frame.captionFont.height 24
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 44
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 10
|
||||||
|
win.frame.smallCaptionButtonHeight 44
|
||||||
|
win.frame.smallCaptionButtonWidth 44
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.frame.smallCaptionFont.height 24
|
||||||
|
win.frame.smallCaptionHeight 44
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.icon.font.height 24
|
||||||
|
win.icon.hspacing 228
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 150
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 38
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.menu.font.height 24
|
||||||
|
win.menu.height 38
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.messagebox.font.height 24
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 34
|
||||||
|
win.scrollbar.width 34
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.status.font.height 24
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=24]
|
||||||
|
win.tooltip.font.height 24
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 2.0
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 2.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=21]
|
||||||
|
win.defaultGUI.font.height 21
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 44
|
||||||
|
win.frame.captionButtonWidth 72
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.frame.captionFont.height 30
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 44
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 10
|
||||||
|
win.frame.smallCaptionButtonHeight 44
|
||||||
|
win.frame.smallCaptionButtonWidth 44
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.frame.smallCaptionFont.height 30
|
||||||
|
win.frame.smallCaptionHeight 44
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.icon.font.height 30
|
||||||
|
win.icon.hspacing 228
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 150
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 38
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.menu.font.height 30
|
||||||
|
win.menu.height 44
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=29]
|
||||||
|
win.messagebox.font.height 29
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 34
|
||||||
|
win.scrollbar.width 34
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.status.font.height 30
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=30]
|
||||||
|
win.tooltip.font.height 30
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 2.0
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 3.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=21]
|
||||||
|
win.defaultGUI.font.height 21
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 54
|
||||||
|
win.frame.captionButtonWidth 89
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.frame.captionFont.height 36
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 54
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 10
|
||||||
|
win.frame.smallCaptionButtonHeight 54
|
||||||
|
win.frame.smallCaptionButtonWidth 44
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.frame.smallCaptionFont.height 36
|
||||||
|
win.frame.smallCaptionHeight 54
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.icon.font.height 36
|
||||||
|
win.icon.hspacing 228
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 150
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 38
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.menu.font.height 36
|
||||||
|
win.menu.height 54
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.messagebox.font.height 36
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 34
|
||||||
|
win.scrollbar.width 34
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.status.font.height 36
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=36]
|
||||||
|
win.tooltip.font.height 36
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 2.25
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 3.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=24]
|
||||||
|
win.defaultGUI.font.height 24
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 61
|
||||||
|
win.frame.captionButtonWidth 100
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.frame.captionFont.height 41
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 61
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 11
|
||||||
|
win.frame.smallCaptionButtonHeight 61
|
||||||
|
win.frame.smallCaptionButtonWidth 50
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.frame.smallCaptionFont.height 41
|
||||||
|
win.frame.smallCaptionHeight 61
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.icon.font.height 41
|
||||||
|
win.icon.hspacing 257
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 169
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 43
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.menu.font.height 41
|
||||||
|
win.menu.height 61
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.messagebox.font.height 41
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 38
|
||||||
|
win.scrollbar.width 38
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.status.font.height 41
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=41]
|
||||||
|
win.tooltip.font.height 41
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 3.0
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 3.75
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=32]
|
||||||
|
win.defaultGUI.font.height 32
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 66
|
||||||
|
win.frame.captionButtonWidth 109
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.frame.captionFont.height 45
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 66
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 15
|
||||||
|
win.frame.smallCaptionButtonHeight 66
|
||||||
|
win.frame.smallCaptionButtonWidth 66
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.frame.smallCaptionFont.height 45
|
||||||
|
win.frame.smallCaptionHeight 66
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.icon.font.height 45
|
||||||
|
win.icon.hspacing 342
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 225
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 57
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.menu.font.height 45
|
||||||
|
win.menu.height 66
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=44]
|
||||||
|
win.messagebox.font.height 44
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 51
|
||||||
|
win.scrollbar.width 51
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.status.font.height 45
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=45]
|
||||||
|
win.tooltip.font.height 45
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 1.8.0_202
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 3.0
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 4.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=32]
|
||||||
|
win.defaultGUI.font.height 32
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 81
|
||||||
|
win.frame.captionButtonWidth 133
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.frame.captionFont.height 54
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 81
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 15
|
||||||
|
win.frame.smallCaptionButtonHeight 81
|
||||||
|
win.frame.smallCaptionButtonWidth 66
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.frame.smallCaptionFont.height 54
|
||||||
|
win.frame.smallCaptionHeight 81
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.icon.font.height 54
|
||||||
|
win.icon.hspacing 342
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 225
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 57
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.menu.font.height 54
|
||||||
|
win.menu.height 81
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.messagebox.font.height 54
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 51
|
||||||
|
win.scrollbar.width 51
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.status.font.height 54
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=54]
|
||||||
|
win.tooltip.font.height 54
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.0
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.captionFont.height 12
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.smallCaptionFont.height 12
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.icon.font.height 12
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.menu.font.height 12
|
||||||
|
win.menu.height 19
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.messagebox.font.height 12
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.status.font.height 12
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.tooltip.font.height 12
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.captionFont.height 15
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.smallCaptionFont.height 15
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.icon.font.height 15
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.menu.font.height 15
|
||||||
|
win.menu.height 22
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.messagebox.font.height 15
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.status.font.height 15
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.tooltip.font.height 15
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.0
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.0
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=16]
|
||||||
|
win.defaultGUI.font.height 16
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 27
|
||||||
|
win.frame.captionButtonWidth 44
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.captionFont.height 18
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 27
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 27
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.smallCaptionFont.height 18
|
||||||
|
win.frame.smallCaptionHeight 27
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.icon.font.height 18
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.menu.font.height 18
|
||||||
|
win.menu.height 27
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.status.font.height 18
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.tooltip.font.height 18
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.25
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.25
|
||||||
|
Font scale: 1.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=13]
|
||||||
|
win.defaultGUI.font.height 13
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 37
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.captionFont.height 15
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.smallCaptionFont.height 15
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.icon.font.height 15
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.menu.font.height 15
|
||||||
|
win.menu.height 22
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=14]
|
||||||
|
win.messagebox.font.height 14
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.status.font.height 15
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.tooltip.font.height 15
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.25
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.25
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=13]
|
||||||
|
win.defaultGUI.font.height 13
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 27
|
||||||
|
win.frame.captionButtonWidth 45
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.captionFont.height 18
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 27
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 27
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.smallCaptionFont.height 18
|
||||||
|
win.frame.smallCaptionHeight 27
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.icon.font.height 18
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.menu.font.height 18
|
||||||
|
win.menu.height 27
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.status.font.height 18
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.tooltip.font.height 18
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.0
|
||||||
|
|
||||||
|
Java scale: 1.5
|
||||||
|
Font scale: 1.0
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.captionFont.height 12
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.frame.smallCaptionFont.height 12
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.icon.font.height 12
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.menu.font.height 12
|
||||||
|
win.menu.height 19
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.messagebox.font.height 12
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.status.font.height 12
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=12]
|
||||||
|
win.tooltip.font.height 12
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.5
|
||||||
|
Font scale: 1.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 36
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.captionFont.height 15
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.smallCaptionFont.height 15
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.icon.font.height 15
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.menu.font.height 15
|
||||||
|
win.menu.height 21
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.messagebox.font.height 15
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.status.font.height 15
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.tooltip.font.height 15
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.5
|
||||||
|
Text scale: 1.5
|
||||||
|
|
||||||
|
Java scale: 1.5
|
||||||
|
Font scale: 1.5
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=11]
|
||||||
|
win.defaultGUI.font.height 11
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 26
|
||||||
|
win.frame.captionButtonWidth 43
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.captionFont.height 18
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 26
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 26
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.frame.smallCaptionFont.height 18
|
||||||
|
win.frame.smallCaptionHeight 26
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.icon.font.height 18
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.menu.font.height 18
|
||||||
|
win.menu.height 26
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.messagebox.font.height 18
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.status.font.height 18
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=18]
|
||||||
|
win.tooltip.font.height 18
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
Java version: 9.0.4
|
||||||
|
OS: Windows 10
|
||||||
|
|
||||||
|
Screen scale: 1.75
|
||||||
|
Text scale: 1.25
|
||||||
|
|
||||||
|
Java scale: 1.75
|
||||||
|
Font scale: 1.25
|
||||||
|
|
||||||
|
DnD.gestureMotionThreshold 2
|
||||||
|
awt.dynamicLayoutSupported true
|
||||||
|
awt.file.showAttribCol false
|
||||||
|
awt.file.showHiddenFiles true
|
||||||
|
awt.font.desktophints {Text-specific antialiasing enable key=LCD HRGB antialiasing text mode, Text-specific LCD contrast key=120}
|
||||||
|
awt.mouse.numButtons 5
|
||||||
|
awt.multiClickInterval 500
|
||||||
|
awt.wheelMousePresent true
|
||||||
|
win.3d.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.3d.darkShadowColor java.awt.Color[r=105,g=105,b=105]
|
||||||
|
win.3d.highlightColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.3d.lightColor java.awt.Color[r=227,g=227,b=227]
|
||||||
|
win.3d.shadowColor java.awt.Color[r=160,g=160,b=160]
|
||||||
|
win.ansiFixed.font java.awt.Font[family=Monospaced,name=Monospaced,style=plain,size=13]
|
||||||
|
win.ansiFixed.font.height 13
|
||||||
|
win.ansiVar.font java.awt.Font[family=Microsoft Sans Serif,name=Microsoft Sans Serif,style=plain,size=11]
|
||||||
|
win.ansiVar.font.height 11
|
||||||
|
win.button.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.caret.width 1
|
||||||
|
win.defaultGUI.font java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=9]
|
||||||
|
win.defaultGUI.font.height 9
|
||||||
|
win.desktop.backgroundColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.deviceDefault.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.deviceDefault.font.height 16
|
||||||
|
win.drag.height 4
|
||||||
|
win.drag.width 4
|
||||||
|
win.frame.activeBorderColor java.awt.Color[r=180,g=180,b=180]
|
||||||
|
win.frame.activeCaptionColor java.awt.Color[r=153,g=180,b=209]
|
||||||
|
win.frame.activeCaptionGradientColor java.awt.Color[r=185,g=209,b=234]
|
||||||
|
win.frame.backgroundColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.frame.captionButtonHeight 22
|
||||||
|
win.frame.captionButtonWidth 37
|
||||||
|
win.frame.captionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.captionFont.height 15
|
||||||
|
win.frame.captionGradientsOn true
|
||||||
|
win.frame.captionHeight 22
|
||||||
|
win.frame.captionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.color java.awt.Color[r=100,g=100,b=100]
|
||||||
|
win.frame.fullWindowDragsOn true
|
||||||
|
win.frame.inactiveBorderColor java.awt.Color[r=244,g=247,b=252]
|
||||||
|
win.frame.inactiveCaptionColor java.awt.Color[r=191,g=205,b=219]
|
||||||
|
win.frame.inactiveCaptionGradientColor java.awt.Color[r=215,g=228,b=242]
|
||||||
|
win.frame.inactiveCaptionTextColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.frame.sizingBorderWidth 1
|
||||||
|
win.frame.smallCaptionButtonHeight 22
|
||||||
|
win.frame.smallCaptionButtonWidth 22
|
||||||
|
win.frame.smallCaptionFont java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.frame.smallCaptionFont.height 15
|
||||||
|
win.frame.smallCaptionHeight 22
|
||||||
|
win.frame.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.highContrast.on false
|
||||||
|
win.icon.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.icon.font.height 15
|
||||||
|
win.icon.hspacing 114
|
||||||
|
win.icon.titleWrappingOn true
|
||||||
|
win.icon.vspacing 75
|
||||||
|
win.item.highlightColor java.awt.Color[r=0,g=120,b=215]
|
||||||
|
win.item.highlightTextColor java.awt.Color[r=255,g=255,b=255]
|
||||||
|
win.item.hotTrackedColor java.awt.Color[r=0,g=102,b=204]
|
||||||
|
win.item.hotTrackingOn true
|
||||||
|
win.mdi.backgroundColor java.awt.Color[r=171,g=171,b=171]
|
||||||
|
win.menu.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.menu.buttonWidth 19
|
||||||
|
win.menu.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.menu.font.height 15
|
||||||
|
win.menu.height 22
|
||||||
|
win.menu.keyboardCuesOn false
|
||||||
|
win.menu.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.menubar.backgroundColor java.awt.Color[r=240,g=240,b=240]
|
||||||
|
win.messagebox.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.messagebox.font.height 15
|
||||||
|
win.oemFixed.font java.awt.Font[family=Dialog,name=8514oem,style=plain,size=18]
|
||||||
|
win.oemFixed.font.height 18
|
||||||
|
win.properties.version 3
|
||||||
|
win.scrollbar.backgroundColor java.awt.Color[r=200,g=200,b=200]
|
||||||
|
win.scrollbar.height 17
|
||||||
|
win.scrollbar.width 17
|
||||||
|
win.sound.asterisk WinPlaySound(SystemAsterisk)
|
||||||
|
win.sound.close WinPlaySound(Close)
|
||||||
|
win.sound.default WinPlaySound(.Default)
|
||||||
|
win.sound.exclamation WinPlaySound(SystemExclamation)
|
||||||
|
win.sound.exit WinPlaySound(SystemExit)
|
||||||
|
win.sound.hand WinPlaySound(SystemHand)
|
||||||
|
win.sound.maximize WinPlaySound(Maximize)
|
||||||
|
win.sound.menuCommand WinPlaySound(MenuCommand)
|
||||||
|
win.sound.menuPopup WinPlaySound(MenuPopup)
|
||||||
|
win.sound.minimize WinPlaySound(Minimize)
|
||||||
|
win.sound.open WinPlaySound(Open)
|
||||||
|
win.sound.question WinPlaySound(SystemQuestion)
|
||||||
|
win.sound.restoreDown WinPlaySound(RestoreDown)
|
||||||
|
win.sound.restoreUp WinPlaySound(RestoreUp)
|
||||||
|
win.sound.start WinPlaySound(SystemStart)
|
||||||
|
win.status.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.status.font.height 15
|
||||||
|
win.system.font java.awt.Font[family=Dialog,name=Dialog,style=bold,size=16]
|
||||||
|
win.system.font.height 16
|
||||||
|
win.systemFixed.font java.awt.Font[family=Dialog,name=Fixedsys,style=plain,size=18]
|
||||||
|
win.systemFixed.font.height 18
|
||||||
|
win.text.fontSmoothingContrast 1200
|
||||||
|
win.text.fontSmoothingOn true
|
||||||
|
win.text.fontSmoothingOrientation 1
|
||||||
|
win.text.fontSmoothingType 2
|
||||||
|
win.text.grayedTextColor java.awt.Color[r=109,g=109,b=109]
|
||||||
|
win.tooltip.backgroundColor java.awt.Color[r=255,g=255,b=225]
|
||||||
|
win.tooltip.font java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15]
|
||||||
|
win.tooltip.font.height 15
|
||||||
|
win.tooltip.textColor java.awt.Color[r=0,g=0,b=0]
|
||||||
|
win.xpstyle.colorName NormalColor
|
||||||
|
win.xpstyle.dllName C:\Windows\resources\themes\Aero\Aero.msstyles
|
||||||
|
win.xpstyle.sizeName NormalSize
|
||||||
|
win.xpstyle.themeActive true
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user