mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 07:17:13 -06:00
PasswordField implemented
This commit is contained in:
@@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 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
|
||||||
|
*
|
||||||
|
* http://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 java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.event.FocusEvent;
|
||||||
|
import java.awt.event.FocusListener;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.plaf.basic.BasicPasswordFieldUI;
|
||||||
|
import javax.swing.text.JTextComponent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF UI delegate for {@link javax.swing.JPasswordField}.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatPasswordFieldUI
|
||||||
|
extends BasicPasswordFieldUI
|
||||||
|
{
|
||||||
|
private final Handler handler = new Handler();
|
||||||
|
|
||||||
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
|
return new FlatPasswordFieldUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installListeners() {
|
||||||
|
super.installListeners();
|
||||||
|
|
||||||
|
getComponent().addFocusListener( handler );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void uninstallListeners() {
|
||||||
|
super.uninstallListeners();
|
||||||
|
|
||||||
|
getComponent().removeFocusListener( handler );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintBackground( Graphics g ) {
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
|
||||||
|
FlatUIUtils.paintParentBackground( g, c );
|
||||||
|
|
||||||
|
Graphics2D g2 = (Graphics2D) g.create();
|
||||||
|
try {
|
||||||
|
FlatUIUtils.setRenderingHints( g2 );
|
||||||
|
|
||||||
|
float focusWidth = FlatUIUtils.getFocusWidth();
|
||||||
|
|
||||||
|
g2.setColor( c.getBackground() );
|
||||||
|
FlatUIUtils.fillRoundRectangle( g2, 0, 0, c.getWidth(), c.getHeight(), focusWidth, 0 );
|
||||||
|
} finally {
|
||||||
|
g2.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class Handler ------------------------------------------------------
|
||||||
|
|
||||||
|
private class Handler
|
||||||
|
implements FocusListener
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void focusGained( FocusEvent e ) {
|
||||||
|
getComponent().repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void focusLost( FocusEvent e ) {
|
||||||
|
getComponent().repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ ButtonUI=com.formdev.flatlaf.ui.FlatButtonUI
|
|||||||
CheckBoxUI=com.formdev.flatlaf.ui.FlatCheckBoxUI
|
CheckBoxUI=com.formdev.flatlaf.ui.FlatCheckBoxUI
|
||||||
FormattedTextFieldUI=com.formdev.flatlaf.ui.FlatFormattedTextFieldUI
|
FormattedTextFieldUI=com.formdev.flatlaf.ui.FlatFormattedTextFieldUI
|
||||||
LabelUI=com.formdev.flatlaf.ui.FlatLabelUI
|
LabelUI=com.formdev.flatlaf.ui.FlatLabelUI
|
||||||
|
PasswordFieldUI=com.formdev.flatlaf.ui.FlatPasswordFieldUI
|
||||||
RadioButtonUI=com.formdev.flatlaf.ui.FlatRadioButtonUI
|
RadioButtonUI=com.formdev.flatlaf.ui.FlatRadioButtonUI
|
||||||
TextFieldUI=com.formdev.flatlaf.ui.FlatTextFieldUI
|
TextFieldUI=com.formdev.flatlaf.ui.FlatTextFieldUI
|
||||||
|
|
||||||
@@ -49,6 +50,13 @@ FormattedTextField.background=@textComponentBackground
|
|||||||
FormattedTextField.margin=2,6,2,6
|
FormattedTextField.margin=2,6,2,6
|
||||||
|
|
||||||
|
|
||||||
|
#---- PasswordField ----
|
||||||
|
|
||||||
|
PasswordField.border=com.formdev.flatlaf.ui.FlatBorder
|
||||||
|
PasswordField.background=@textComponentBackground
|
||||||
|
PasswordField.margin=2,6,2,6
|
||||||
|
|
||||||
|
|
||||||
#---- RadioButton ----
|
#---- RadioButton ----
|
||||||
|
|
||||||
RadioButton.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
RadioButton.border=com.formdev.flatlaf.ui.FlatMarginBorder
|
||||||
|
|||||||
@@ -76,6 +76,11 @@ public class FlatComponentsTest
|
|||||||
JFormattedTextField formattedTextField2 = new JFormattedTextField();
|
JFormattedTextField formattedTextField2 = new JFormattedTextField();
|
||||||
JFormattedTextField formattedTextField3 = new JFormattedTextField();
|
JFormattedTextField formattedTextField3 = new JFormattedTextField();
|
||||||
JFormattedTextField formattedTextField4 = new JFormattedTextField();
|
JFormattedTextField formattedTextField4 = new JFormattedTextField();
|
||||||
|
JLabel passwordFieldLabel = new JLabel();
|
||||||
|
JPasswordField passwordField1 = new JPasswordField();
|
||||||
|
JPasswordField passwordField2 = new JPasswordField();
|
||||||
|
JPasswordField passwordField3 = new JPasswordField();
|
||||||
|
JPasswordField passwordField4 = new JPasswordField();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
@@ -237,6 +242,30 @@ public class FlatComponentsTest
|
|||||||
formattedTextField4.setEnabled(false);
|
formattedTextField4.setEnabled(false);
|
||||||
formattedTextField4.setEditable(false);
|
formattedTextField4.setEditable(false);
|
||||||
add(formattedTextField4, "cell 4 5,growx");
|
add(formattedTextField4, "cell 4 5,growx");
|
||||||
|
|
||||||
|
//---- passwordFieldLabel ----
|
||||||
|
passwordFieldLabel.setText("JPasswordField:");
|
||||||
|
add(passwordFieldLabel, "cell 0 6");
|
||||||
|
|
||||||
|
//---- passwordField1 ----
|
||||||
|
passwordField1.setText("editable");
|
||||||
|
add(passwordField1, "cell 1 6,growx");
|
||||||
|
|
||||||
|
//---- passwordField2 ----
|
||||||
|
passwordField2.setText("disabled");
|
||||||
|
passwordField2.setEnabled(false);
|
||||||
|
add(passwordField2, "cell 2 6,growx");
|
||||||
|
|
||||||
|
//---- passwordField3 ----
|
||||||
|
passwordField3.setText("not editable");
|
||||||
|
passwordField3.setEditable(false);
|
||||||
|
add(passwordField3, "cell 3 6,growx");
|
||||||
|
|
||||||
|
//---- passwordField4 ----
|
||||||
|
passwordField4.setText("not editable disabled");
|
||||||
|
passwordField4.setEnabled(false);
|
||||||
|
passwordField4.setEditable(false);
|
||||||
|
add(passwordField4, "cell 4 6,growx");
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -212,6 +212,40 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 5,growx"
|
"value": "cell 4 5,growx"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "passwordFieldLabel"
|
||||||
|
"text": "JPasswordField:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 6"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField1"
|
||||||
|
"text": "editable"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 6,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField2"
|
||||||
|
"text": "disabled"
|
||||||
|
"enabled": false
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 6,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField3"
|
||||||
|
"text": "not editable"
|
||||||
|
"editable": false
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 6,growx"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPasswordField" ) {
|
||||||
|
name: "passwordField4"
|
||||||
|
"text": "not editable disabled"
|
||||||
|
"enabled": false
|
||||||
|
"editable": false
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 4 6,growx"
|
||||||
|
} )
|
||||||
}, 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( 580, 300 )
|
"size": new java.awt.Dimension( 580, 300 )
|
||||||
|
|||||||
Reference in New Issue
Block a user