Compare commits

...

9 Commits
0.25.1 ... 0.26

56 changed files with 1124 additions and 65 deletions

View File

@@ -1,6 +1,23 @@
FlatLaf Change Log
==================
## 0.26
- Menus:
- Changed menu bar and popup menu background colors (made brighter in light
themes and darker in dark themes).
- Highlight items in menu bar on mouse hover. (issue #49)
- Popup menus now have empty space at the top and bottom.
- Menu items now have larger left and right margins.
- Made `JMenu`, `JMenuItem`, `JCheckBoxMenuItem` and `JRadioButtonMenuItem`
non-opaque.
- TextField, FormattedTextField and PasswordField: Select all text when a text
field gains focus for the first time and selection was not set explicitly.
This can be configured to newer or always select all text on focus gain (see
UI default value `TextComponent.selectAllOnFocusPolicy`).
- ProgressBar: Made progress bar paint smooth in indeterminate mode.
## 0.25.1
Re-release of 0.25 because of problems with Maven Central.

View File

@@ -45,7 +45,7 @@ build script:
groupId: com.formdev
artifactId: flatlaf
version: 0.25.1
version: (see button below)
Otherwise download `flatlaf-<version>.jar` here:

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
version = "0.25.1"
version = "0.26"
allprojects {
repositories {

View File

@@ -68,6 +68,7 @@ tasks {
options {
this as StandardJavadocDocletOptions
tags = listOf( "uiDefault", "clientProperty" )
addStringOption( "Xdoclint:all,-missing", "-Xdoclint:all,-missing" )
}
isFailOnError = false
}

View File

@@ -48,7 +48,7 @@ public interface FlatClientProperties
* <p>
* <strong>Components</strong> {@link javax.swing.JToggleButton}
*
* @see #TOGGLE_BUTTON_TYPE
* @see #BUTTON_TYPE
*/
String BUTTON_TYPE_TAB = "tab";
@@ -141,10 +141,44 @@ public interface FlatClientProperties
*/
String TABBED_PANE_TAB_HEIGHT = "JTabbedPane.tabHeight";
/**
* Specifies whether all text is selected when the text component gains focus.
* <p>
* <strong>Component</strong> {@link javax.swing.JTextField} (and subclasses)<br>
* <strong>Value type</strong> {@link java.lang.String}<br>
* <strong>Allowed Values</strong> {@link #SELECT_ALL_ON_FOCUS_POLICY_NEVER},
* {@link #SELECT_ALL_ON_FOCUS_POLICY_ONCE} (default) or
* {@link #SELECT_ALL_ON_FOCUS_POLICY_ALWAYS}
*/
String SELECT_ALL_ON_FOCUS_POLICY = "JTextField.selectAllOnFocusPolicy";
/**
* Never select all text when the text component gains focus.
*
* @see #SELECT_ALL_ON_FOCUS_POLICY
*/
String SELECT_ALL_ON_FOCUS_POLICY_NEVER = "never";
/**
* Select all text when the text component gains focus for the first time
* and selection was not modified (is at end of text).
* This is the default.
*
* @see #SELECT_ALL_ON_FOCUS_POLICY
*/
String SELECT_ALL_ON_FOCUS_POLICY_ONCE = "once";
/**
* Always select all text when the text component gains focus.
*
* @see #SELECT_ALL_ON_FOCUS_POLICY
*/
String SELECT_ALL_ON_FOCUS_POLICY_ALWAYS = "always";
/**
* Placeholder text that is only painted if the text field is empty.
* <p>
* <strong>Component</strong> {@link javax.swing.JTextField} or {@link javax.swing.JComboBox}<br>
* <strong>Component</strong> {@link javax.swing.JTextField} (and subclasses) or {@link javax.swing.JComboBox}<br>
* <strong>Value type</strong> {@link java.lang.String}
*/
String PLACEHOLDER_TEXT = "JTextField.placeholderText";

View File

@@ -0,0 +1,128 @@
/*
* 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.ui;
import static com.formdev.flatlaf.FlatClientProperties.*;
import java.awt.EventQueue;
import java.awt.event.FocusEvent;
import java.awt.event.MouseEvent;
import javax.swing.JFormattedTextField;
import javax.swing.plaf.UIResource;
import javax.swing.text.DefaultCaret;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
/**
* Caret that can select all text on focus gained.
*
* @author Karl Tauber
*/
class FlatCaret
extends DefaultCaret
implements UIResource
{
private final String selectAllOnFocusPolicy;
private boolean wasFocused;
private boolean wasTemporaryLost;
private boolean isMousePressed;
FlatCaret( String selectAllOnFocusPolicy ) {
this.selectAllOnFocusPolicy = selectAllOnFocusPolicy;
}
@Override
public void install( JTextComponent c ) {
super.install( c );
// the dot and mark are lost when switching LaF
// --> move dot to end of text so that all text may be selected when it gains focus
Document doc = c.getDocument();
if( doc != null && getDot() == 0 && getMark() == 0 ) {
int length = doc.getLength();
if( length > 0 )
setDot( length );
}
}
@Override
public void focusGained( FocusEvent e ) {
if( !wasTemporaryLost && !isMousePressed )
selectAllOnFocusGained();
wasTemporaryLost = false;
wasFocused = true;
super.focusGained( e );
}
@Override
public void focusLost( FocusEvent e ) {
wasTemporaryLost = e.isTemporary();
super.focusLost( e );
}
@Override
public void mousePressed( MouseEvent e ) {
isMousePressed = true;
super.mousePressed( e );
}
@Override
public void mouseReleased( MouseEvent e ) {
isMousePressed = false;
super.mouseReleased( e );
}
private void selectAllOnFocusGained() {
JTextComponent c = getComponent();
Document doc = c.getDocument();
if( doc == null || !c.isEnabled() || !c.isEditable() )
return;
Object selectAllOnFocusPolicy = c.getClientProperty( SELECT_ALL_ON_FOCUS_POLICY );
if( selectAllOnFocusPolicy == null )
selectAllOnFocusPolicy = this.selectAllOnFocusPolicy;
if( SELECT_ALL_ON_FOCUS_POLICY_NEVER.equals( selectAllOnFocusPolicy ) )
return;
if( !SELECT_ALL_ON_FOCUS_POLICY_ALWAYS.equals( selectAllOnFocusPolicy ) ) {
// policy is "once" (or null or unknown)
// was already focused?
if( wasFocused )
return;
// check whether selection was modified before gaining focus
int dot = getDot();
int mark = getMark();
if( dot != mark || dot != doc.getLength() )
return;
}
// select all
if( c instanceof JFormattedTextField ) {
EventQueue.invokeLater( () -> {
setDot( 0 );
moveDot( doc.getLength() );
} );
} else {
setDot( 0 );
moveDot( doc.getLength() );
}
}
}

View File

@@ -43,6 +43,7 @@ import javax.swing.plaf.ComponentUI;
* @uiDefault Component.minimumWidth int
* @uiDefault Component.isIntelliJTheme boolean
* @uiDefault FormattedTextField.placeholderForeground Color
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
*
* @author Karl Tauber
*/

View File

@@ -0,0 +1,49 @@
/*
* 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.ui;
import static com.formdev.flatlaf.util.UIScale.scale;
import java.awt.Component;
import java.awt.Insets;
import javax.swing.JMenuBar;
import javax.swing.UIManager;
/**
* Border for {@link javax.swing.JMenu}, {@link javax.swing.JMenuItem},
* {@link javax.swing.JCheckBoxMenuItem} and {@link javax.swing.JRadioButtonMenuItem}.
*
* @uiDefault MenuBar.itemMargins Insets
*
* @author Karl Tauber
*/
public class FlatMenuItemBorder
extends FlatMarginBorder
{
private final Insets menuBarItemMargins = UIManager.getInsets( "MenuBar.itemMargins" );
@Override
public Insets getBorderInsets( Component c, Insets insets ) {
if( c.getParent() instanceof JMenuBar ) {
insets.top = scale( menuBarItemMargins.top );
insets.left = scale( menuBarItemMargins.left );
insets.bottom = scale( menuBarItemMargins.bottom + 1 );
insets.right = scale( menuBarItemMargins.right );
return insets;
} else
return super.getBorderInsets( c, insets );
}
}

View File

@@ -17,11 +17,17 @@
package com.formdev.flatlaf.ui;
import static com.formdev.flatlaf.util.UIScale.scale;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeListener;
import javax.swing.ButtonModel;
import javax.swing.JComponent;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.UIManager;
import javax.swing.event.MouseInputListener;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicMenuUI;
@@ -51,11 +57,17 @@ import javax.swing.plaf.basic.BasicMenuUI;
* @uiDefault Menu.useMenuBarBackgroundForTopLevel boolean default is false
* @uiDefault MenuBar.background Color used if Menu.useMenuBarBackgroundForTopLevel is true
*
* <!-- FlatMenuUI -->
*
* @uiDefault MenuBar.hoverBackground Color
*
* @author Karl Tauber
*/
public class FlatMenuUI
extends BasicMenuUI
{
private Color hoverBackground;
public static ComponentUI createUI( JComponent c ) {
return new FlatMenuUI();
}
@@ -64,10 +76,21 @@ public class FlatMenuUI
protected void installDefaults() {
super.installDefaults();
menuItem.setRolloverEnabled( true );
hoverBackground = UIManager.getColor( "MenuBar.hoverBackground" );
// scale
defaultTextIconGap = scale( defaultTextIconGap );
}
@Override
protected void uninstallDefaults() {
super.uninstallDefaults();
hoverBackground = null;
}
/**
* Scale defaultTextIconGap again if iconTextGap property has changed.
*/
@@ -81,6 +104,43 @@ public class FlatMenuUI
};
}
@Override
protected MouseInputListener createMouseInputListener( JComponent c ) {
return new BasicMenuUI.MouseInputHandler() {
@Override
public void mouseEntered( MouseEvent e ) {
super.mouseEntered( e );
rollover( e, true );
}
@Override
public void mouseExited( MouseEvent e ) {
super.mouseExited( e );
rollover( e, false );
}
private void rollover( MouseEvent e, boolean rollover ) {
JMenu menu = (JMenu) e.getSource();
if( menu.isTopLevelMenu() && menu.isRolloverEnabled() ) {
menu.getModel().setRollover( rollover );
menu.repaint();
}
}
};
}
@Override
protected void paintBackground( Graphics g, JMenuItem menuItem, Color bgColor ) {
ButtonModel model = menuItem.getModel();
if( model.isArmed() || model.isSelected() ) {
super.paintBackground( g, menuItem, bgColor );
} else if( model.isRollover() && model.isEnabled() && ((JMenu)menuItem).isTopLevelMenu() ) {
FlatUIUtils.setColor( g, hoverBackground, menuItem.getBackground() );
g.fillRect( 0, 0, menuItem.getWidth(), menuItem.getHeight() );
} else
super.paintBackground( g, menuItem, bgColor );
}
@Override
protected void paintText( Graphics g, JMenuItem menuItem, Rectangle textRect, String text ) {
FlatMenuItemUI.paintText( g, menuItem, textRect, text, disabledForeground, selectionForeground );

View File

@@ -27,6 +27,7 @@ import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicPasswordFieldUI;
import javax.swing.text.Caret;
import com.formdev.flatlaf.FlatClientProperties;
import com.formdev.flatlaf.util.SystemInfo;
@@ -55,6 +56,7 @@ import com.formdev.flatlaf.util.SystemInfo;
* @uiDefault Component.minimumWidth int
* @uiDefault Component.isIntelliJTheme boolean
* @uiDefault PasswordField.placeholderForeground Color
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
*
* @author Karl Tauber
*/
@@ -116,6 +118,11 @@ public class FlatPasswordFieldUI
focusListener = null;
}
@Override
protected Caret createCaret() {
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) );
}
@Override
protected void propertyChange( PropertyChangeEvent e ) {
super.propertyChange( e );

View File

@@ -16,7 +16,12 @@
package com.formdev.flatlaf.ui;
import java.awt.Component;
import java.awt.Container;
import java.awt.Insets;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import com.formdev.flatlaf.util.UIScale;
/**
* Border for {@link javax.swing.JPopupMenu}.
@@ -33,4 +38,18 @@ public class FlatPopupMenuBorder
super( UIManager.getInsets( "PopupMenu.borderInsets" ),
UIManager.getColor( "PopupMenu.borderColor" ) );
}
@Override
public Insets getBorderInsets( Component c, Insets insets ) {
if( c instanceof Container &&
((Container)c).getComponentCount() > 0 &&
((Container)c).getComponent( 0 ) instanceof JScrollPane )
{
// e.g. for combobox popups
insets.left = insets.top = insets.right = insets.bottom = UIScale.scale( 1 );
return insets;
}
return super.getBorderInsets( c, insets );
}
}

View File

@@ -35,6 +35,7 @@ import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.UIResource;
import javax.swing.plaf.basic.BasicTextFieldUI;
import javax.swing.text.Caret;
import javax.swing.text.JTextComponent;
import com.formdev.flatlaf.FlatClientProperties;
@@ -62,6 +63,7 @@ import com.formdev.flatlaf.FlatClientProperties;
* @uiDefault Component.minimumWidth int
* @uiDefault Component.isIntelliJTheme boolean
* @uiDefault TextField.placeholderForeground Color
* @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always
*
* @author Karl Tauber
*/
@@ -119,6 +121,11 @@ public class FlatTextFieldUI
focusListener = null;
}
@Override
protected Caret createCaret() {
return new FlatCaret( UIManager.getString( "TextComponent.selectAllOnFocusPolicy" ) );
}
@Override
protected void propertyChange( PropertyChangeEvent e ) {
super.propertyChange( e );

View File

@@ -28,6 +28,7 @@
@selectionInactiveForeground=@foreground
@disabledText=#777777
@textComponentBackground=#45494A
@menuBackground=darken(@background,5%)
@cellFocusColor=#000000
@icon=#adadad
@@ -144,6 +145,7 @@ Menu.icon.disabledArrowColor=#606060
#---- MenuBar ----
MenuBar.borderColor=#515151
MenuBar.hoverBackground=lighten($MenuBar.background,10%)
#---- MenuItemCheckBox ----

View File

@@ -59,6 +59,7 @@ ViewportUI=com.formdev.flatlaf.ui.FlatViewportUI
#---- variables ----
@textComponentMargin=2,6,2,6
@menuItemMargin=2,8,2,8
#---- system colors ----
@@ -117,10 +118,12 @@ CheckBox.rollover=true
#---- CheckBoxMenuItem ----
CheckBoxMenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
CheckBoxMenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
CheckBoxMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatCheckBoxMenuItemIcon
CheckBoxMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
CheckBoxMenuItem.margin=2,2,2,2
CheckBoxMenuItem.margin=@menuItemMargin
CheckBoxMenuItem.opaque=false
CheckBoxMenuItem.background=@menuBackground
#---- ColorChooser ----
@@ -212,23 +215,29 @@ List.dropLineColor=@dropLineColor
#---- Menu ----
Menu.border=com.formdev.flatlaf.ui.FlatMarginBorder
Menu.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
Menu.arrowIcon=com.formdev.flatlaf.icons.FlatMenuArrowIcon
Menu.margin=2,2,2,2
Menu.margin=@menuItemMargin
Menu.submenuPopupOffsetX={scaledInteger}-4
Menu.submenuPopupOffsetY={scaledInteger}-1
Menu.submenuPopupOffsetY={scaledInteger}-4
Menu.opaque=false
Menu.background=@menuBackground
#---- MenuBar ----
MenuBar.border=com.formdev.flatlaf.ui.FlatMenuBarBorder
MenuBar.background=@menuBackground
MenuBar.itemMargins=3,3,3,3
#---- MenuItem ----
MenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
MenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
MenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
MenuItem.margin=2,2,2,2
MenuItem.margin=@menuItemMargin
MenuItem.opaque=false
MenuItem.background=@menuBackground
#---- OptionPane ----
@@ -265,7 +274,8 @@ PasswordField.placeholderForeground=@disabledText
#---- PopupMenu ----
PopupMenu.border=com.formdev.flatlaf.ui.FlatPopupMenuBorder
PopupMenu.borderInsets=1,1,1,1
PopupMenu.borderInsets=4,1,4,1
PopupMenu.background=@menuBackground
#---- PopupMenuSeparator ----
@@ -281,6 +291,8 @@ ProgressBar.border=com.formdev.flatlaf.ui.FlatEmptyBorder
ProgressBar.arc=4
ProgressBar.horizontalSize=146,4
ProgressBar.verticalSize=4,146
ProgressBar.cycleTime=4000
ProgressBar.repaintInterval=15
#---- RadioButton ----
@@ -295,10 +307,12 @@ RadioButton.rollover=true
#---- RadioButtonMenuItem ----
RadioButtonMenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
RadioButtonMenuItem.border=com.formdev.flatlaf.ui.FlatMenuItemBorder
RadioButtonMenuItem.checkIcon=com.formdev.flatlaf.icons.FlatRadioButtonMenuItemIcon
RadioButtonMenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
RadioButtonMenuItem.margin=2,2,2,2
RadioButtonMenuItem.margin=@menuItemMargin
RadioButtonMenuItem.opaque=false
RadioButtonMenuItem.background=@menuBackground
#---- ScrollBar ----
@@ -407,6 +421,12 @@ TextArea.margin=@textComponentMargin
TextArea.background=@textComponentBackground
#---- TextComponent ----
# allowed values: "never", "once" (default) or "always"
TextComponent.selectAllOnFocusPolicy=once
#---- TextField ----
TextField.border=com.formdev.flatlaf.ui.FlatBorder

View File

@@ -28,6 +28,7 @@
@selectionInactiveForeground=@foreground
@disabledText=#8C8C8C
@textComponentBackground=#ffffff
@menuBackground=#fff
@cellFocusColor=#000000
@icon=#afafaf
@@ -151,6 +152,7 @@ Menu.icon.disabledArrowColor=#ABABAB
#---- MenuBar ----
MenuBar.borderColor=#cdcdcd
MenuBar.hoverBackground=darken($MenuBar.background,10%)
#---- MenuItemCheckBox ----

View File

@@ -17,6 +17,7 @@
package com.formdev.flatlaf.demo;
import javax.swing.*;
import javax.swing.text.DefaultEditorKit;
import net.miginfocom.swing.*;
/**
@@ -113,6 +114,10 @@ class BasicComponentsPanel
JScrollPane scrollPane12 = new JScrollPane();
JTextPane textPane4 = new JTextPane();
JTextPane textPane5 = new JTextPane();
JPopupMenu popupMenu1 = new JPopupMenu();
JMenuItem cutMenuItem = new JMenuItem();
JMenuItem copyMenuItem = new JMenuItem();
JMenuItem pasteMenuItem = new JMenuItem();
//======== this ========
setLayout(new MigLayout(
@@ -260,6 +265,8 @@ class BasicComponentsPanel
//---- comboBoxLabel ----
comboBoxLabel.setText("JComboBox:");
comboBoxLabel.setDisplayedMnemonic('C');
comboBoxLabel.setLabelFor(comboBox1);
add(comboBoxLabel, "cell 0 4");
//---- comboBox1 ----
@@ -314,6 +321,8 @@ class BasicComponentsPanel
//---- spinnerLabel ----
spinnerLabel.setText("JSpinner:");
spinnerLabel.setLabelFor(spinner1);
spinnerLabel.setDisplayedMnemonic('S');
add(spinnerLabel, "cell 0 5");
add(spinner1, "cell 1 5,growx");
@@ -328,10 +337,13 @@ class BasicComponentsPanel
//---- textFieldLabel ----
textFieldLabel.setText("JTextField:");
textFieldLabel.setDisplayedMnemonic('T');
textFieldLabel.setLabelFor(textField1);
add(textFieldLabel, "cell 0 6");
//---- textField1 ----
textField1.setText("editable");
textField1.setComponentPopupMenu(popupMenu1);
add(textField1, "cell 1 6,growx");
//---- textField2 ----
@@ -356,10 +368,13 @@ class BasicComponentsPanel
//---- formattedTextFieldLabel ----
formattedTextFieldLabel.setText("JFormattedTextField:");
formattedTextFieldLabel.setLabelFor(formattedTextField1);
formattedTextFieldLabel.setDisplayedMnemonic('O');
add(formattedTextFieldLabel, "cell 0 7");
//---- formattedTextField1 ----
formattedTextField1.setText("editable");
formattedTextField1.setComponentPopupMenu(popupMenu1);
add(formattedTextField1, "cell 1 7,growx");
//---- formattedTextField2 ----
@@ -582,7 +597,27 @@ class BasicComponentsPanel
//---- textPane5 ----
textPane5.setText("no scroll pane");
add(textPane5, "cell 5 11,growx");
//======== popupMenu1 ========
{
//---- cutMenuItem ----
cutMenuItem.setText("Cut");
popupMenu1.add(cutMenuItem);
//---- copyMenuItem ----
copyMenuItem.setText("Copy");
popupMenu1.add(copyMenuItem);
//---- pasteMenuItem ----
pasteMenuItem.setText("Paste");
popupMenu1.add(pasteMenuItem);
}
// JFormDesigner - End of component initialization //GEN-END:initComponents
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables

View File

@@ -183,6 +183,8 @@ new FormModel {
add( new FormComponent( "javax.swing.JLabel" ) {
name: "comboBoxLabel"
"text": "JComboBox:"
"displayedMnemonic": 67
"labelFor": new FormReference( "comboBox1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 4"
} )
@@ -254,6 +256,8 @@ new FormModel {
add( new FormComponent( "javax.swing.JLabel" ) {
name: "spinnerLabel"
"text": "JSpinner:"
"labelFor": new FormReference( "spinner1" )
"displayedMnemonic": 83
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 5"
} )
@@ -281,12 +285,15 @@ new FormModel {
add( new FormComponent( "javax.swing.JLabel" ) {
name: "textFieldLabel"
"text": "JTextField:"
"displayedMnemonic": 84
"labelFor": new FormReference( "textField1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 6"
} )
add( new FormComponent( "javax.swing.JTextField" ) {
name: "textField1"
"text": "editable"
"componentPopupMenu": &FormReference0 new FormReference( "popupMenu1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 6,growx"
} )
@@ -321,12 +328,15 @@ new FormModel {
add( new FormComponent( "javax.swing.JLabel" ) {
name: "formattedTextFieldLabel"
"text": "JFormattedTextField:"
"labelFor": new FormReference( "formattedTextField1" )
"displayedMnemonic": 79
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 7"
} )
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
name: "formattedTextField1"
"text": "editable"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 7,growx"
} )
@@ -585,7 +595,25 @@ new FormModel {
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 0 )
"size": new java.awt.Dimension( 790, 715 )
"size": new java.awt.Dimension( 790, 440 )
} )
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
name: "popupMenu1"
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "cutMenuItem"
"text": "Cut"
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "copyMenuItem"
"text": "Copy"
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "pasteMenuItem"
"text": "Paste"
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 500 )
"size": new java.awt.Dimension( 91, 87 )
} )
}
}

View File

@@ -19,6 +19,7 @@ package com.formdev.flatlaf.demo;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.DefaultEditorKit;
import com.formdev.flatlaf.demo.intellijthemes.*;
import com.formdev.flatlaf.extras.FlatSVGIcon;
import net.miginfocom.swing.*;
@@ -175,21 +176,18 @@ class DemoFrame
cutMenuItem.setText("Cut");
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
cutMenuItem.setMnemonic('C');
cutMenuItem.addActionListener(e -> menuItemActionPerformed(e));
editMenu.add(cutMenuItem);
//---- copyMenuItem ----
copyMenuItem.setText("Copy");
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
copyMenuItem.setMnemonic('O');
copyMenuItem.addActionListener(e -> menuItemActionPerformed(e));
editMenu.add(copyMenuItem);
//---- pasteMenuItem ----
pasteMenuItem.setText("Paste");
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
pasteMenuItem.setMnemonic('P');
pasteMenuItem.addActionListener(e -> menuItemActionPerformed(e));
editMenu.add(pasteMenuItem);
editMenu.addSeparator();
@@ -385,6 +383,10 @@ class DemoFrame
pasteButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/menu-paste.svg" ) );
refreshButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/refresh.svg" ) );
showToggleButton.setIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/show.svg" ) );
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables

View File

@@ -179,21 +179,18 @@ new FormModel {
"text": "Cut"
"accelerator": static javax.swing.KeyStroke getKeyStroke( 88, 4226, false )
"mnemonic": 67
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "copyMenuItem"
"text": "Copy"
"accelerator": static javax.swing.KeyStroke getKeyStroke( 67, 4226, false )
"mnemonic": 79
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "pasteMenuItem"
"text": "Paste"
"accelerator": static javax.swing.KeyStroke getKeyStroke( 86, 4226, false )
"mnemonic": 80
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) )
} )
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
name: "separator3"

View File

@@ -10,7 +10,8 @@
"selectionForeground": "#ffffff",
"selectionInactiveBackground": "#C36200",
"selectionBackgroundInactive": "#c36200",
"background" : "#F5F5F5"
"background" : "#FFFFFF",
"focusColor" : "#f57900"
},
"Borders": {
@@ -23,6 +24,7 @@
"startBorderColor": "#C4C4C4",
"endBorderColor": "#C4C4C4",
"focusedBorderColor" : "#f57900",
"background" : "#F5F5F5",
"default": {
"foreground": "#FFFFFF",
"startBackground": "#f57900",
@@ -40,8 +42,6 @@
"WelcomeScreen.background" : "#F5F5F5",
"WelcomeScreen.Projects.background" : "#ffffff",
"List.background" : "#ffffff",
"MenuBar.foreground" : "#5c616c",
"Menu.background" : "#ffffff",
"Menu.separatorColor" : "#F5F5F5",
@@ -49,8 +49,10 @@
"MenuItem.foreground" : "#5c616c",
"MenuItem.background" : "#ffffff",
"PopupMenuSeparator.height" : "1",
"Separator.separatorColor" : "#9ba2ab",
"Tree.background" : "#ffffff",
"Tree.rowHeight": "23",
"ProgressBar.background" : "#f57900",
"ProgressBar.foreground" : "#f57900",
@@ -69,9 +71,11 @@
"ParameterInfo.background" : "#fffae3",
"ParameterInfo.currentOverloadBackground" : "#fffae3",
"List.background" : "#ffffff",
"List.dropLineColor" : "#f57900",
"List.selectionBackground": "#f57900",
"List.selectionForeground": "#ffffff",
"List.selectionInactiveBackground": "#C36200",
"Table.background" : "#ffffff",
"Table.selectionBackground" : "#f57900",
@@ -83,6 +87,7 @@
"TabbedPane.underlineColor" : "#f57900",
"TabbedPane.tabSelectionHeight" : 2,
"TabbedPane.background" : "#F5F5F5",
"Link.hoverForeground" : "#f57900",
"Link.activeForeground" : "#f57900",
@@ -98,8 +103,22 @@
"TextArea.background" : "#ffffff",
"TextPane.background" : "#ffffff",
"PasswordField.background" : "#ffffff",
"FormattedTextField.background" : "#ffffff",
"Editor.background" : "#f5f5f5",
"EditorPane.background" : "#ffffff",
"CompletionPopup.background" : "#ffffff",
"CheckBox.background" : "#F5F5F5",
"RadioButton.background" : "#F5F5F5",
"Slider.background" : "#F5F5F5",
"Spinner.background" : "#F5F5F5",
"OptionPane.background" : "#F5F5F5",
"CompletionPopup": {
"selectionBackground" : "#F5790055",
"nonFocusedMask": false,
"matchForeground": "#F57900",
"selectionInactiveBackground": "#C36200"
},
"Plugins.lightSelectionBackground" : "#dddee1",
"Plugins.SearchField.background" : "#ffffff",
@@ -116,8 +135,10 @@
"Counter.foreground" : "#ffffff",
"SearchEverywhere.SearchField.background" : "#ffffff",
"SearchEverywhere.Header.background" : "#F5F5F5",
"ToolTip.background" : "#fffae3",
"ToolTip.background" : "#F5F5F5",
"ToolTip.Actions.background" : "#F5F5F5",
"ToolWindow.Header.background" : "#e7e8eb",
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
@@ -128,8 +149,12 @@
"ToolWindow.HeaderTab.underlineColor" : "#f57900",
"DefaultTabs.underlineHeight" : 2,
"DefaultTabs.underlineColor" : "#f57900",
"DefaultTabs.background" : "#F5F5F5",
"EditorTabs.underlineHeight" : 2,
"EditorTabs.underlineColor" : "#f57900"
"EditorTabs.underlineColor" : "#f57900",
"EditorTabs.background" : "#F5F5F5",
"Notification.background" : "#F5F5F5"
},

View File

@@ -10,7 +10,8 @@
"selectionForeground": "#ffffff",
"selectionInactiveBackground": "#1e61b0",
"selectionBackgroundInactive": "#1e61b0",
"background" : "#F5F5F5"
"background" : "#FFFFFF",
"focusColor" : "#2679db"
},
"Borders": {
@@ -23,6 +24,7 @@
"startBorderColor": "#C4C4C4",
"endBorderColor": "#C4C4C4",
"focusedBorderColor" : "#2679db",
"background" : "#F5F5F5",
"default": {
"foreground": "#FFFFFF",
"startBackground": "#2679db",
@@ -40,8 +42,6 @@
"WelcomeScreen.background" : "#F5F5F5",
"WelcomeScreen.Projects.background" : "#ffffff",
"List.background" : "#ffffff",
"MenuBar.foreground" : "#5c616c",
"Menu.background" : "#ffffff",
"Menu.separatorColor" : "#F5F5F5",
@@ -49,8 +49,10 @@
"MenuItem.foreground" : "#5c616c",
"MenuItem.background" : "#ffffff",
"PopupMenuSeparator.height" : "1",
"Separator.separatorColor" : "#9ba2ab",
"Tree.background" : "#ffffff",
"Tree.rowHeight": "23",
"ProgressBar.background" : "#2679db",
"ProgressBar.foreground" : "#2679db",
@@ -69,9 +71,11 @@
"ParameterInfo.background" : "#fffae3",
"ParameterInfo.currentOverloadBackground" : "#fffae3",
"List.background" : "#ffffff",
"List.dropLineColor" : "#2679db",
"List.selectionBackground": "#2679db",
"List.selectionForeground": "#ffffff",
"List.selectionInactiveBackground": "#1e61b0",
"Table.background" : "#ffffff",
"Table.selectionBackground" : "#2679db",
@@ -83,6 +87,7 @@
"TabbedPane.underlineColor" : "#2679db",
"TabbedPane.tabSelectionHeight" : 2,
"TabbedPane.background" : "#F5F5F5",
"Link.hoverForeground" : "#2679db",
"Link.activeForeground" : "#2679db",
@@ -98,8 +103,22 @@
"TextArea.background" : "#ffffff",
"TextPane.background" : "#ffffff",
"PasswordField.background" : "#ffffff",
"FormattedTextField.background" : "#ffffff",
"Editor.background" : "#f5f5f5",
"EditorPane.background" : "#ffffff",
"CompletionPopup.background" : "#ffffff",
"CheckBox.background" : "#F5F5F5",
"RadioButton.background" : "#F5F5F5",
"Slider.background" : "#F5F5F5",
"Spinner.background" : "#F5F5F5",
"OptionPane.background" : "#F5F5F5",
"CompletionPopup": {
"selectionBackground" : "#2679db55",
"nonFocusedMask": false,
"matchForeground": "#2679db",
"selectionInactiveBackground": "#1e61b0"
},
"Plugins.lightSelectionBackground" : "#dddee1",
"Plugins.SearchField.background" : "#ffffff",
@@ -116,8 +135,10 @@
"Counter.foreground" : "#ffffff",
"SearchEverywhere.SearchField.background" : "#ffffff",
"SearchEverywhere.Header.background" : "#F5F5F5",
"ToolTip.background" : "#fffae3",
"ToolTip.background" : "#F5F5F5",
"ToolTip.Actions.background" : "#F5F5F5",
"ToolWindow.Header.background" : "#e7e8eb",
"ToolWindow.HeaderTab.selectedBackground" : "#dddee1",
@@ -128,8 +149,12 @@
"ToolWindow.HeaderTab.underlineColor" : "#2679db",
"DefaultTabs.underlineHeight" : 2,
"DefaultTabs.underlineColor" : "#2679db",
"DefaultTabs.background" : "#F5F5F5",
"EditorTabs.underlineHeight" : 2,
"EditorTabs.underlineColor" : "#2679db"
"EditorTabs.underlineColor" : "#2679db",
"EditorTabs.background" : "#F5F5F5",
"Notification.background" : "#F5F5F5"
},

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#42A5F5",
"Checkbox.Foreground.Disabled": "#D3DAE3",
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
"Checkbox.Background.Selected": "#2f343f",
"Checkbox.Background.Selected": "#42A5F5",
"Checkbox.Background.Selected.Dark": "#2f343f",
"Checkbox.Border.Selected": "#42A5F5",
"Checkbox.Border.Selected.Dark": "#42A5F5",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#42A5F5",
"Checkbox.Foreground.Disabled": "#D3DAE3",
"Checkbox.Foreground.Disabled.Dark": "#D3DAE3",
"Checkbox.Background.Selected": "#2f343f",
"Checkbox.Background.Selected": "#42A5F5",
"Checkbox.Background.Selected.Dark": "#2f343f",
"Checkbox.Border.Selected": "#42A5F5",
"Checkbox.Border.Selected.Dark": "#42A5F5",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2979ff",
"Checkbox.Foreground.Disabled": "#6B727D",
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
"Checkbox.Background.Selected": "#282C34",
"Checkbox.Background.Selected": "#2979ff",
"Checkbox.Background.Selected.Dark": "#282C34",
"Checkbox.Border.Selected": "#2979ff",
"Checkbox.Border.Selected.Dark": "#2979ff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2979ff",
"Checkbox.Foreground.Disabled": "#6B727D",
"Checkbox.Foreground.Disabled.Dark": "#6B727D",
"Checkbox.Background.Selected": "#282C34",
"Checkbox.Background.Selected": "#2979ff",
"Checkbox.Background.Selected.Dark": "#282C34",
"Checkbox.Border.Selected": "#2979ff",
"Checkbox.Border.Selected.Dark": "#2979ff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2979ff",
"Checkbox.Foreground.Disabled": "#b8b8b9",
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
"Checkbox.Background.Selected": "#F4F4F4",
"Checkbox.Background.Selected": "#2979ff",
"Checkbox.Background.Selected.Dark": "#F4F4F4",
"Checkbox.Border.Selected": "#2979ff",
"Checkbox.Border.Selected.Dark": "#2979ff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2979ff",
"Checkbox.Foreground.Disabled": "#b8b8b9",
"Checkbox.Foreground.Disabled.Dark": "#b8b8b9",
"Checkbox.Background.Selected": "#F4F4F4",
"Checkbox.Background.Selected": "#2979ff",
"Checkbox.Background.Selected.Dark": "#F4F4F4",
"Checkbox.Border.Selected": "#2979ff",
"Checkbox.Border.Selected.Dark": "#2979ff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#FF79C5",
"Checkbox.Foreground.Disabled": "#6272A4",
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
"Checkbox.Background.Selected": "#282A36",
"Checkbox.Background.Selected": "#FF79C5",
"Checkbox.Background.Selected.Dark": "#282A36",
"Checkbox.Border.Selected": "#FF79C5",
"Checkbox.Border.Selected.Dark": "#FF79C5",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#FF79C5",
"Checkbox.Foreground.Disabled": "#6272A4",
"Checkbox.Foreground.Disabled.Dark": "#6272A4",
"Checkbox.Background.Selected": "#282A36",
"Checkbox.Background.Selected": "#FF79C5",
"Checkbox.Background.Selected.Dark": "#282A36",
"Checkbox.Border.Selected": "#FF79C5",
"Checkbox.Border.Selected.Dark": "#FF79C5",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#79CB60",
"Checkbox.Foreground.Disabled": "#9ba0a3",
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
"Checkbox.Background.Selected": "#F7F8FA",
"Checkbox.Background.Selected": "#79CB60",
"Checkbox.Background.Selected.Dark": "#F7F8FA",
"Checkbox.Border.Selected": "#79CB60",
"Checkbox.Border.Selected.Dark": "#79CB60",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#79CB60",
"Checkbox.Foreground.Disabled": "#9ba0a3",
"Checkbox.Foreground.Disabled.Dark": "#9ba0a3",
"Checkbox.Background.Selected": "#F7F8FA",
"Checkbox.Background.Selected": "#79CB60",
"Checkbox.Background.Selected.Dark": "#F7F8FA",
"Checkbox.Border.Selected": "#79CB60",
"Checkbox.Border.Selected.Dark": "#79CB60",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2AA298",
"Checkbox.Foreground.Disabled": "#93A1A1",
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
"Checkbox.Background.Selected": "#F0F0F0",
"Checkbox.Background.Selected": "#2AA298",
"Checkbox.Background.Selected.Dark": "#F0F0F0",
"Checkbox.Border.Selected": "#2AA298",
"Checkbox.Border.Selected.Dark": "#2AA298",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#2AA298",
"Checkbox.Foreground.Disabled": "#93A1A1",
"Checkbox.Foreground.Disabled.Dark": "#93A1A1",
"Checkbox.Background.Selected": "#F0F0F0",
"Checkbox.Background.Selected": "#2AA298",
"Checkbox.Background.Selected.Dark": "#F0F0F0",
"Checkbox.Border.Selected": "#2AA298",
"Checkbox.Border.Selected.Dark": "#2AA298",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#FF9800",
"Checkbox.Foreground.Disabled": "#474747",
"Checkbox.Foreground.Disabled.Dark": "#474747",
"Checkbox.Background.Selected": "#212121",
"Checkbox.Background.Selected": "#FF9800",
"Checkbox.Background.Selected.Dark": "#212121",
"Checkbox.Border.Selected": "#FF9800",
"Checkbox.Border.Selected.Dark": "#FF9800",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#FF9800",
"Checkbox.Foreground.Disabled": "#474747",
"Checkbox.Foreground.Disabled.Dark": "#474747",
"Checkbox.Background.Selected": "#212121",
"Checkbox.Background.Selected": "#FF9800",
"Checkbox.Background.Selected.Dark": "#212121",
"Checkbox.Border.Selected": "#FF9800",
"Checkbox.Border.Selected.Dark": "#FF9800",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#84ffff",
"Checkbox.Foreground.Disabled": "#464B5D",
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
"Checkbox.Background.Selected": "#0F111A",
"Checkbox.Background.Selected": "#84ffff",
"Checkbox.Background.Selected.Dark": "#0F111A",
"Checkbox.Border.Selected": "#84ffff",
"Checkbox.Border.Selected.Dark": "#84ffff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#84ffff",
"Checkbox.Foreground.Disabled": "#464B5D",
"Checkbox.Foreground.Disabled.Dark": "#464B5D",
"Checkbox.Background.Selected": "#0F111A",
"Checkbox.Background.Selected": "#84ffff",
"Checkbox.Background.Selected.Dark": "#0F111A",
"Checkbox.Border.Selected": "#84ffff",
"Checkbox.Border.Selected.Dark": "#84ffff",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#00BCD4",
"Checkbox.Foreground.Disabled": "#D2D4D5",
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
"Checkbox.Background.Selected": "#FAFAFA",
"Checkbox.Background.Selected": "#00BCD4",
"Checkbox.Background.Selected.Dark": "#FAFAFA",
"Checkbox.Border.Selected": "#00BCD4",
"Checkbox.Border.Selected.Dark": "#00BCD4",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#00BCD4",
"Checkbox.Foreground.Disabled": "#D2D4D5",
"Checkbox.Foreground.Disabled.Dark": "#D2D4D5",
"Checkbox.Background.Selected": "#FAFAFA",
"Checkbox.Background.Selected": "#00BCD4",
"Checkbox.Background.Selected.Dark": "#FAFAFA",
"Checkbox.Border.Selected": "#00BCD4",
"Checkbox.Border.Selected.Dark": "#00BCD4",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#009688",
"Checkbox.Foreground.Disabled": "#415967",
"Checkbox.Foreground.Disabled.Dark": "#415967",
"Checkbox.Background.Selected": "#263238",
"Checkbox.Background.Selected": "#009688",
"Checkbox.Background.Selected.Dark": "#263238",
"Checkbox.Border.Selected": "#009688",
"Checkbox.Border.Selected.Dark": "#009688",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#009688",
"Checkbox.Foreground.Disabled": "#415967",
"Checkbox.Foreground.Disabled.Dark": "#415967",
"Checkbox.Background.Selected": "#263238",
"Checkbox.Background.Selected": "#009688",
"Checkbox.Background.Selected.Dark": "#263238",
"Checkbox.Border.Selected": "#009688",
"Checkbox.Border.Selected.Dark": "#009688",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#ab47bc",
"Checkbox.Foreground.Disabled": "#515772",
"Checkbox.Foreground.Disabled.Dark": "#515772",
"Checkbox.Background.Selected": "#292D3E",
"Checkbox.Background.Selected": "#ab47bc",
"Checkbox.Background.Selected.Dark": "#292D3E",
"Checkbox.Border.Selected": "#ab47bc",
"Checkbox.Border.Selected.Dark": "#ab47bc",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#ab47bc",
"Checkbox.Foreground.Disabled": "#515772",
"Checkbox.Foreground.Disabled.Dark": "#515772",
"Checkbox.Background.Selected": "#292D3E",
"Checkbox.Background.Selected": "#ab47bc",
"Checkbox.Background.Selected.Dark": "#292D3E",
"Checkbox.Border.Selected": "#ab47bc",
"Checkbox.Border.Selected.Dark": "#ab47bc",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#ffd866",
"Checkbox.Foreground.Disabled": "#5b595c",
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
"Checkbox.Background.Selected": "#2D2A2E",
"Checkbox.Background.Selected": "#ffd866",
"Checkbox.Background.Selected.Dark": "#2D2A2E",
"Checkbox.Border.Selected": "#ffd866",
"Checkbox.Border.Selected.Dark": "#ffd866",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#ffd866",
"Checkbox.Foreground.Disabled": "#5b595c",
"Checkbox.Foreground.Disabled.Dark": "#5b595c",
"Checkbox.Background.Selected": "#2D2A2E",
"Checkbox.Background.Selected": "#ffd866",
"Checkbox.Background.Selected.Dark": "#2D2A2E",
"Checkbox.Border.Selected": "#ffd866",
"Checkbox.Border.Selected.Dark": "#ffd866",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#7e57c2",
"Checkbox.Foreground.Disabled": "#697098",
"Checkbox.Foreground.Disabled.Dark": "#697098",
"Checkbox.Background.Selected": "#011627",
"Checkbox.Background.Selected": "#7e57c2",
"Checkbox.Background.Selected.Dark": "#011627",
"Checkbox.Border.Selected": "#7e57c2",
"Checkbox.Border.Selected.Dark": "#7e57c2",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#7e57c2",
"Checkbox.Foreground.Disabled": "#697098",
"Checkbox.Foreground.Disabled.Dark": "#697098",
"Checkbox.Background.Selected": "#011627",
"Checkbox.Background.Selected": "#7e57c2",
"Checkbox.Background.Selected.Dark": "#011627",
"Checkbox.Border.Selected": "#7e57c2",
"Checkbox.Border.Selected.Dark": "#7e57c2",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#d33682",
"Checkbox.Foreground.Disabled": "#2E5861",
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
"Checkbox.Background.Selected": "#002B36",
"Checkbox.Background.Selected": "#d33682",
"Checkbox.Background.Selected.Dark": "#002B36",
"Checkbox.Border.Selected": "#d33682",
"Checkbox.Border.Selected.Dark": "#d33682",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#d33682",
"Checkbox.Foreground.Disabled": "#2E5861",
"Checkbox.Foreground.Disabled.Dark": "#2E5861",
"Checkbox.Background.Selected": "#002B36",
"Checkbox.Background.Selected": "#d33682",
"Checkbox.Background.Selected.Dark": "#002B36",
"Checkbox.Border.Selected": "#d33682",
"Checkbox.Border.Selected.Dark": "#d33682",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#d33682",
"Checkbox.Foreground.Disabled": "#C9CCC3",
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
"Checkbox.Background.Selected": "#fdf6e3",
"Checkbox.Background.Selected": "#d33682",
"Checkbox.Background.Selected.Dark": "#fdf6e3",
"Checkbox.Border.Selected": "#d33682",
"Checkbox.Border.Selected.Dark": "#d33682",

View File

@@ -850,7 +850,7 @@
"Checkbox.Focus.Wide.Dark": "#d33682",
"Checkbox.Foreground.Disabled": "#C9CCC3",
"Checkbox.Foreground.Disabled.Dark": "#C9CCC3",
"Checkbox.Background.Selected": "#fdf6e3",
"Checkbox.Background.Selected": "#d33682",
"Checkbox.Background.Selected.Dark": "#fdf6e3",
"Checkbox.Border.Selected": "#d33682",
"Checkbox.Border.Selected.Dark": "#d33682",

View File

@@ -26,7 +26,7 @@ build script:
groupId: com.formdev
artifactId: flatlaf-jide-oss
version: 0.25.1
version: (see button below)
Otherwise download `flatlaf-jide-oss-<version>.jar` here:

View File

@@ -33,7 +33,7 @@ build script:
groupId: com.formdev
artifactId: flatlaf-swingx
version: 0.25.1
version: (see button below)
Otherwise download `flatlaf-swingx-<version>.jar` here:

View File

@@ -0,0 +1,339 @@
/*
* 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.testing;
import javax.swing.*;
import javax.swing.text.DefaultEditorKit;
import net.miginfocom.swing.*;
/**
* @author Karl Tauber
*/
public class FlatTextComponentsTest
extends FlatTestPanel
{
public static void main( String[] args ) {
SwingUtilities.invokeLater( () -> {
FlatTestFrame frame = FlatTestFrame.create( args, "FlatTextComponentsTest" );
frame.showFrame( FlatTextComponentsTest::new );
} );
}
FlatTextComponentsTest() {
initComponents();
}
private void changeText() {
textField1.setText( "new text" );
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
JLabel textFieldLabel = new JLabel();
textField1 = new JTextField();
JTextField textField3 = new JTextField();
JTextField textField2 = new JTextField();
JButton button1 = new JButton();
JLabel formattedTextFieldLabel = new JLabel();
JFormattedTextField formattedTextField1 = new JFormattedTextField();
JFormattedTextField formattedTextField3 = new JFormattedTextField();
JLabel passwordFieldLabel = new JLabel();
JPasswordField passwordField1 = new JPasswordField();
JPasswordField passwordField3 = new JPasswordField();
JLabel textAreaLabel = new JLabel();
JScrollPane scrollPane1 = new JScrollPane();
JTextArea textArea1 = new JTextArea();
JScrollPane scrollPane3 = new JScrollPane();
JTextArea textArea3 = new JTextArea();
JLabel editorPaneLabel = new JLabel();
JScrollPane scrollPane5 = new JScrollPane();
JEditorPane editorPane1 = new JEditorPane();
JScrollPane scrollPane7 = new JScrollPane();
JEditorPane editorPane3 = new JEditorPane();
JLabel textPaneLabel = new JLabel();
JScrollPane scrollPane9 = new JScrollPane();
JTextPane textPane1 = new JTextPane();
JScrollPane scrollPane11 = new JScrollPane();
JTextPane textPane3 = new JTextPane();
JLabel comboBoxLabel = new JLabel();
JComboBox<String> comboBox1 = new JComboBox<>();
JComboBox<String> comboBox3 = new JComboBox<>();
JLabel spinnerLabel = new JLabel();
JSpinner spinner1 = new JSpinner();
JPopupMenu popupMenu1 = new JPopupMenu();
JMenuItem cutMenuItem = new JMenuItem();
JMenuItem copyMenuItem = new JMenuItem();
JMenuItem pasteMenuItem = new JMenuItem();
//======== this ========
setName("this");
setLayout(new MigLayout(
"ltr,insets dialog,hidemode 3",
// columns
"[]" +
"[]" +
"[::100]" +
"[100,fill]" +
"[fill]",
// rows
"[]" +
"[]" +
"[]" +
"[50,fill]" +
"[50,fill]" +
"[50,fill]" +
"[]" +
"[]"));
//---- textFieldLabel ----
textFieldLabel.setText("JTextField:");
textFieldLabel.setDisplayedMnemonic('T');
textFieldLabel.setLabelFor(textField1);
textFieldLabel.setName("textFieldLabel");
add(textFieldLabel, "cell 0 0");
//---- textField1 ----
textField1.setText("editable");
textField1.setComponentPopupMenu(popupMenu1);
textField1.setName("textField1");
add(textField1, "cell 1 0,growx");
//---- textField3 ----
textField3.setText("longer text for testing horizontal scrolling");
textField3.setComponentPopupMenu(popupMenu1);
textField3.setName("textField3");
add(textField3, "cell 2 0,growx");
//---- textField2 ----
textField2.setText("partly selected");
textField2.setSelectionStart(1);
textField2.setSelectionEnd(4);
textField2.setComponentPopupMenu(popupMenu1);
textField2.setName("textField2");
add(textField2, "cell 3 0");
//---- button1 ----
button1.setText("change text");
button1.setName("button1");
button1.addActionListener(e -> changeText());
add(button1, "cell 4 0");
//---- formattedTextFieldLabel ----
formattedTextFieldLabel.setText("JFormattedTextField:");
formattedTextFieldLabel.setDisplayedMnemonic('F');
formattedTextFieldLabel.setLabelFor(formattedTextField1);
formattedTextFieldLabel.setName("formattedTextFieldLabel");
add(formattedTextFieldLabel, "cell 0 1");
//---- formattedTextField1 ----
formattedTextField1.setText("editable");
formattedTextField1.setComponentPopupMenu(popupMenu1);
formattedTextField1.setName("formattedTextField1");
add(formattedTextField1, "cell 1 1,growx");
//---- formattedTextField3 ----
formattedTextField3.setText("longer text for testing horizontal scrolling");
formattedTextField3.setComponentPopupMenu(popupMenu1);
formattedTextField3.setName("formattedTextField3");
add(formattedTextField3, "cell 2 1,growx");
//---- passwordFieldLabel ----
passwordFieldLabel.setText("JPasswordField:");
passwordFieldLabel.setDisplayedMnemonic('P');
passwordFieldLabel.setLabelFor(passwordField1);
passwordFieldLabel.setName("passwordFieldLabel");
add(passwordFieldLabel, "cell 0 2");
//---- passwordField1 ----
passwordField1.setText("editable");
passwordField1.setComponentPopupMenu(popupMenu1);
passwordField1.setName("passwordField1");
add(passwordField1, "cell 1 2,growx");
//---- passwordField3 ----
passwordField3.setText("longer text for testing horizontal scrolling");
passwordField3.setComponentPopupMenu(popupMenu1);
passwordField3.setName("passwordField3");
add(passwordField3, "cell 2 2,growx");
//---- textAreaLabel ----
textAreaLabel.setText("JTextArea:");
textAreaLabel.setDisplayedMnemonic('A');
textAreaLabel.setLabelFor(textArea1);
textAreaLabel.setName("textAreaLabel");
add(textAreaLabel, "cell 0 3");
//======== scrollPane1 ========
{
scrollPane1.setName("scrollPane1");
//---- textArea1 ----
textArea1.setText("editable");
textArea1.setComponentPopupMenu(popupMenu1);
textArea1.setName("textArea1");
scrollPane1.setViewportView(textArea1);
}
add(scrollPane1, "cell 1 3,growx");
//======== scrollPane3 ========
{
scrollPane3.setName("scrollPane3");
//---- textArea3 ----
textArea3.setText("longer text for testing horizontal scrolling");
textArea3.setComponentPopupMenu(popupMenu1);
textArea3.setName("textArea3");
scrollPane3.setViewportView(textArea3);
}
add(scrollPane3, "cell 2 3,growx");
//---- editorPaneLabel ----
editorPaneLabel.setText("JEditorPane");
editorPaneLabel.setDisplayedMnemonic('J');
editorPaneLabel.setLabelFor(editorPane1);
editorPaneLabel.setName("editorPaneLabel");
add(editorPaneLabel, "cell 0 4");
//======== scrollPane5 ========
{
scrollPane5.setName("scrollPane5");
//---- editorPane1 ----
editorPane1.setText("editable");
editorPane1.setComponentPopupMenu(popupMenu1);
editorPane1.setName("editorPane1");
scrollPane5.setViewportView(editorPane1);
}
add(scrollPane5, "cell 1 4,growx");
//======== scrollPane7 ========
{
scrollPane7.setName("scrollPane7");
//---- editorPane3 ----
editorPane3.setText("longer text for testing horizontal scrolling");
editorPane3.setComponentPopupMenu(popupMenu1);
editorPane3.setName("editorPane3");
scrollPane7.setViewportView(editorPane3);
}
add(scrollPane7, "cell 2 4,growx");
//---- textPaneLabel ----
textPaneLabel.setText("JTextPane:");
textPaneLabel.setDisplayedMnemonic('N');
textPaneLabel.setLabelFor(textPane1);
textPaneLabel.setName("textPaneLabel");
add(textPaneLabel, "cell 0 5");
//======== scrollPane9 ========
{
scrollPane9.setName("scrollPane9");
//---- textPane1 ----
textPane1.setText("editable");
textPane1.setComponentPopupMenu(popupMenu1);
textPane1.setName("textPane1");
scrollPane9.setViewportView(textPane1);
}
add(scrollPane9, "cell 1 5,growx");
//======== scrollPane11 ========
{
scrollPane11.setName("scrollPane11");
//---- textPane3 ----
textPane3.setText("longer text for testing horizontal scrolling");
textPane3.setComponentPopupMenu(popupMenu1);
textPane3.setName("textPane3");
scrollPane11.setViewportView(textPane3);
}
add(scrollPane11, "cell 2 5,growx");
//---- comboBoxLabel ----
comboBoxLabel.setText("JComboBox:");
comboBoxLabel.setDisplayedMnemonic('C');
comboBoxLabel.setLabelFor(comboBox1);
comboBoxLabel.setName("comboBoxLabel");
add(comboBoxLabel, "cell 0 6");
//---- comboBox1 ----
comboBox1.setEditable(true);
comboBox1.setModel(new DefaultComboBoxModel<>(new String[] {
"editable",
"a",
"bb",
"ccc"
}));
comboBox1.setComponentPopupMenu(popupMenu1);
comboBox1.setName("comboBox1");
add(comboBox1, "cell 1 6,growx");
//---- comboBox3 ----
comboBox3.setModel(new DefaultComboBoxModel<>(new String[] {
"longer text for testing horizontal scrolling",
"a",
"bb",
"ccc"
}));
comboBox3.setEditable(true);
comboBox3.setPrototypeDisplayValue("12345");
comboBox3.setComponentPopupMenu(popupMenu1);
comboBox3.setName("comboBox3");
add(comboBox3, "cell 2 6,growx");
//---- spinnerLabel ----
spinnerLabel.setText("JSpinner:");
spinnerLabel.setDisplayedMnemonic('S');
spinnerLabel.setLabelFor(spinner1);
spinnerLabel.setName("spinnerLabel");
add(spinnerLabel, "cell 0 7");
//---- spinner1 ----
spinner1.setComponentPopupMenu(popupMenu1);
spinner1.setName("spinner1");
add(spinner1, "cell 1 7,growx");
//======== popupMenu1 ========
{
popupMenu1.setName("popupMenu1");
//---- cutMenuItem ----
cutMenuItem.setText("Cut");
cutMenuItem.setName("cutMenuItem");
popupMenu1.add(cutMenuItem);
//---- copyMenuItem ----
copyMenuItem.setText("Copy");
copyMenuItem.setName("copyMenuItem");
popupMenu1.add(copyMenuItem);
//---- pasteMenuItem ----
pasteMenuItem.setText("Paste");
pasteMenuItem.setName("pasteMenuItem");
popupMenu1.add(pasteMenuItem);
}
// JFormDesigner - End of component initialization //GEN-END:initComponents
cutMenuItem.addActionListener( new DefaultEditorKit.CutAction() );
copyMenuItem.addActionListener( new DefaultEditorKit.CopyAction() );
pasteMenuItem.addActionListener( new DefaultEditorKit.PasteAction() );
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
private JTextField textField1;
// JFormDesigner - End of variables declaration //GEN-END:variables
}

View File

@@ -0,0 +1,259 @@
JFDML JFormDesigner: "7.0.0.0.194" Java: "13.0.1" encoding: "UTF-8"
new FormModel {
contentType: "form/swing"
root: new FormRoot {
"$setComponentNames": true
auxiliary() {
"JavaCodeGenerator.defaultVariableLocal": true
}
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
"$columnConstraints": "[][][::100][100,fill][fill]"
"$rowConstraints": "[][][][50,fill][50,fill][50,fill][][]"
} ) {
name: "this"
add( new FormComponent( "javax.swing.JLabel" ) {
name: "textFieldLabel"
"text": "JTextField:"
"displayedMnemonic": 84
"labelFor": new FormReference( "textField1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 0"
} )
add( new FormComponent( "javax.swing.JTextField" ) {
name: "textField1"
"text": "editable"
"componentPopupMenu": &FormReference0 new FormReference( "popupMenu1" )
auxiliary() {
"JavaCodeGenerator.variableLocal": false
}
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 0,growx"
} )
add( new FormComponent( "javax.swing.JTextField" ) {
name: "textField3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 0,growx"
} )
add( new FormComponent( "javax.swing.JTextField" ) {
name: "textField2"
"text": "partly selected"
"selectionStart": 1
"selectionEnd": 4
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 3 0"
} )
add( new FormComponent( "javax.swing.JButton" ) {
name: "button1"
"text": "change text"
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "changeText", false ) )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 4 0"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "formattedTextFieldLabel"
"text": "JFormattedTextField:"
"displayedMnemonic": 70
"labelFor": new FormReference( "formattedTextField1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 1"
} )
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
name: "formattedTextField1"
"text": "editable"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 1,growx"
} )
add( new FormComponent( "javax.swing.JFormattedTextField" ) {
name: "formattedTextField3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 1,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "passwordFieldLabel"
"text": "JPasswordField:"
"displayedMnemonic": 80
"labelFor": new FormReference( "passwordField1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 2"
} )
add( new FormComponent( "javax.swing.JPasswordField" ) {
name: "passwordField1"
"text": "editable"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 2,growx"
} )
add( new FormComponent( "javax.swing.JPasswordField" ) {
name: "passwordField3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 2,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "textAreaLabel"
"text": "JTextArea:"
"displayedMnemonic": 65
"labelFor": new FormReference( "textArea1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 3"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane1"
add( new FormComponent( "javax.swing.JTextArea" ) {
name: "textArea1"
"text": "editable"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 3,growx"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane3"
add( new FormComponent( "javax.swing.JTextArea" ) {
name: "textArea3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 3,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "editorPaneLabel"
"text": "JEditorPane"
"displayedMnemonic": 74
"labelFor": new FormReference( "editorPane1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 4"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane5"
add( new FormComponent( "javax.swing.JEditorPane" ) {
name: "editorPane1"
"text": "editable"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 4,growx"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane7"
add( new FormComponent( "javax.swing.JEditorPane" ) {
name: "editorPane3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 4,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "textPaneLabel"
"text": "JTextPane:"
"displayedMnemonic": 78
"labelFor": new FormReference( "textPane1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 5"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane9"
add( new FormComponent( "javax.swing.JTextPane" ) {
name: "textPane1"
"text": "editable"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 5,growx"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane11"
add( new FormComponent( "javax.swing.JTextPane" ) {
name: "textPane3"
"text": "longer text for testing horizontal scrolling"
"componentPopupMenu": #FormReference0
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 5,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "comboBoxLabel"
"text": "JComboBox:"
"displayedMnemonic": 67
"labelFor": new FormReference( "comboBox1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 6"
} )
add( new FormComponent( "javax.swing.JComboBox" ) {
name: "comboBox1"
"editable": true
"model": new javax.swing.DefaultComboBoxModel {
selectedItem: "editable"
addElement( "editable" )
addElement( "a" )
addElement( "bb" )
addElement( "ccc" )
}
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 6,growx"
} )
add( new FormComponent( "javax.swing.JComboBox" ) {
name: "comboBox3"
"model": new javax.swing.DefaultComboBoxModel {
selectedItem: "longer text for testing horizontal scrolling"
addElement( "longer text for testing horizontal scrolling" )
addElement( "a" )
addElement( "bb" )
addElement( "ccc" )
}
"editable": true
"prototypeDisplayValue": "12345"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 6,growx"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "spinnerLabel"
"text": "JSpinner:"
"displayedMnemonic": 83
"labelFor": new FormReference( "spinner1" )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 7"
} )
add( new FormComponent( "javax.swing.JSpinner" ) {
name: "spinner1"
"componentPopupMenu": #FormReference0
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 7,growx"
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 0 )
"size": new java.awt.Dimension( 530, 340 )
} )
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
name: "popupMenu1"
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "cutMenuItem"
"text": "Cut"
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "copyMenuItem"
"text": "Copy"
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "pasteMenuItem"
"text": "Paste"
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 390 )
"size": new java.awt.Dimension( 91, 87 )
} )
}
}

View File

@@ -24,6 +24,7 @@
@selectionInactiveForeground=#ffffff
@disabledText=#000088
@textComponentBackground=#ffffff
@menuBackground=#fff
@cellFocusColor=#ff0000
@icon=#afafaf
@@ -157,6 +158,7 @@ Menu.icon.disabledArrowColor=#ABABAB
#---- MenuBar ----
MenuBar.borderColor=#4444ff
MenuBar.hoverBackground=#fdd
#---- MenuItemCheckBox ----