mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 23:07:15 -06:00
InternalFrame: use default icon in internal frames (issue #122)
This commit is contained in:
@@ -6,6 +6,8 @@ FlatLaf Change Log
|
|||||||
- Hide focus indicator when window is inactive.
|
- Hide focus indicator when window is inactive.
|
||||||
- Custom window decorations: Improved/fixed window border color in dark themes.
|
- Custom window decorations: Improved/fixed window border color in dark themes.
|
||||||
- Custom window decorations: Hide window border if window is maximized.
|
- Custom window decorations: Hide window border if window is maximized.
|
||||||
|
- Custom window decorations: Center title if menu bar is embedded.
|
||||||
|
- InternalFrame: Use default icon in internal frames. (issue #122)
|
||||||
|
|
||||||
|
|
||||||
## 0.37
|
## 0.37
|
||||||
|
|||||||
@@ -26,13 +26,14 @@ import java.beans.PropertyChangeListener;
|
|||||||
import javax.swing.BorderFactory;
|
import javax.swing.BorderFactory;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JInternalFrame;
|
import javax.swing.JInternalFrame;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.LookAndFeel;
|
import javax.swing.LookAndFeel;
|
||||||
import javax.swing.UIManager;
|
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
|
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
|
||||||
|
import com.formdev.flatlaf.util.ScaledImageIcon;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,14 +104,16 @@ public class FlatInternalFrameTitlePane
|
|||||||
add( buttonPanel, BorderLayout.LINE_END );
|
add( buttonPanel, BorderLayout.LINE_END );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFrameIcon() {
|
protected void updateFrameIcon() {
|
||||||
Icon frameIcon = frame.getFrameIcon();
|
Icon frameIcon = frame.getFrameIcon();
|
||||||
if( frameIcon == UIManager.getIcon( "InternalFrame.icon" ) )
|
if( frameIcon != null && (frameIcon.getIconWidth() == 0 || frameIcon.getIconHeight() == 0) )
|
||||||
frameIcon = null;
|
frameIcon = null;
|
||||||
|
else if( frameIcon instanceof ImageIcon )
|
||||||
|
frameIcon = new ScaledImageIcon( (ImageIcon) frameIcon );
|
||||||
titleLabel.setIcon( frameIcon );
|
titleLabel.setIcon( frameIcon );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateColors() {
|
protected void updateColors() {
|
||||||
Color background = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTitleColor : notSelectedTitleColor );
|
Color background = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTitleColor : notSelectedTitleColor );
|
||||||
Color foreground = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTextColor : notSelectedTextColor );
|
Color foreground = FlatUIUtils.nonUIResource( frame.isSelected() ? selectedTextColor : notSelectedTextColor );
|
||||||
|
|
||||||
@@ -123,7 +126,7 @@ public class FlatInternalFrameTitlePane
|
|||||||
closeButton.setForeground( foreground );
|
closeButton.setForeground( foreground );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateButtonsVisibility() {
|
protected void updateButtonsVisibility() {
|
||||||
iconButton.setVisible( frame.isIconifiable() );
|
iconButton.setVisible( frame.isIconifiable() );
|
||||||
maxButton.setVisible( frame.isMaximizable() );
|
maxButton.setVisible( frame.isMaximizable() );
|
||||||
closeButton.setVisible( frame.isClosable() );
|
closeButton.setVisible( frame.isClosable() );
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package com.formdev.flatlaf.testing;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.beans.PropertyVetoException;
|
import java.beans.PropertyVetoException;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
import com.formdev.flatlaf.extras.TriStateCheckBox;
|
||||||
import com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon;
|
import com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
@@ -50,8 +51,10 @@ public class FlatInternalFrameTest
|
|||||||
maximizableCheckBox.isSelected(),
|
maximizableCheckBox.isSelected(),
|
||||||
iconifiableCheckBox.isSelected() );
|
iconifiableCheckBox.isSelected() );
|
||||||
|
|
||||||
if( iconCheckBox.isSelected() )
|
if( iconCheckBox.getState() == TriStateCheckBox.State.SELECTED )
|
||||||
internalFrame.setFrameIcon( new FlatFileViewFloppyDriveIcon() );
|
internalFrame.setFrameIcon( new FlatFileViewFloppyDriveIcon() );
|
||||||
|
else if( iconCheckBox.getState() == TriStateCheckBox.State.UNSELECTED )
|
||||||
|
internalFrame.setFrameIcon( null );
|
||||||
|
|
||||||
if( menuBarCheckBox.isSelected() ) {
|
if( menuBarCheckBox.isSelected() ) {
|
||||||
JMenuBar menuBar = new JMenuBar();
|
JMenuBar menuBar = new JMenuBar();
|
||||||
@@ -100,7 +103,7 @@ public class FlatInternalFrameTest
|
|||||||
closableCheckBox = new JCheckBox();
|
closableCheckBox = new JCheckBox();
|
||||||
iconifiableCheckBox = new JCheckBox();
|
iconifiableCheckBox = new JCheckBox();
|
||||||
maximizableCheckBox = new JCheckBox();
|
maximizableCheckBox = new JCheckBox();
|
||||||
iconCheckBox = new JCheckBox();
|
iconCheckBox = new TriStateCheckBox();
|
||||||
menuBarCheckBox = new JCheckBox();
|
menuBarCheckBox = new JCheckBox();
|
||||||
titleLabel = new JLabel();
|
titleLabel = new JLabel();
|
||||||
titleField = new JTextField();
|
titleField = new JTextField();
|
||||||
@@ -192,7 +195,7 @@ public class FlatInternalFrameTest
|
|||||||
private JCheckBox closableCheckBox;
|
private JCheckBox closableCheckBox;
|
||||||
private JCheckBox iconifiableCheckBox;
|
private JCheckBox iconifiableCheckBox;
|
||||||
private JCheckBox maximizableCheckBox;
|
private JCheckBox maximizableCheckBox;
|
||||||
private JCheckBox iconCheckBox;
|
private TriStateCheckBox iconCheckBox;
|
||||||
private JCheckBox menuBarCheckBox;
|
private JCheckBox menuBarCheckBox;
|
||||||
private JLabel titleLabel;
|
private JLabel titleLabel;
|
||||||
private JTextField titleField;
|
private JTextField titleField;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.0.0.194" Java: "13.0.1" 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"
|
||||||
@@ -50,7 +50,7 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 1,alignx left,growx 0"
|
"value": "cell 1 1,alignx left,growx 0"
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
add( new FormComponent( "com.formdev.flatlaf.extras.TriStateCheckBox" ) {
|
||||||
name: "iconCheckBox"
|
name: "iconCheckBox"
|
||||||
"text": "Frame icon"
|
"text": "Frame icon"
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user