Path: blob/master/src/demo/share/jfc/Metalworks/ContrastMetalTheme.java
41152 views
/*1* Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.2*3* Redistribution and use in source and binary forms, with or without4* modification, are permitted provided that the following conditions5* are met:6*7* - Redistributions of source code must retain the above copyright8* notice, this list of conditions and the following disclaimer.9*10* - Redistributions in binary form must reproduce the above copyright11* notice, this list of conditions and the following disclaimer in the12* documentation and/or other materials provided with the distribution.13*14* - Neither the name of Oracle nor the names of its15* contributors may be used to endorse or promote products derived16* from this software without specific prior written permission.17*18* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS19* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,20* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR21* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR22* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,23* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,24* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR25* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF26* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING27* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS28* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.29*/3031/*32* This source code is provided to illustrate the usage of a given feature33* or technique and has been deliberately simplified. Additional steps34* required for a production-quality application, such as security checks,35* input validation and proper error handling, might not be present in36* this sample code.37*/38394041import javax.swing.UIDefaults;42import javax.swing.border.Border;43import javax.swing.border.CompoundBorder;44import javax.swing.border.LineBorder;45import javax.swing.plaf.BorderUIResource;46import javax.swing.plaf.ColorUIResource;47import javax.swing.plaf.basic.BasicBorders;48import javax.swing.plaf.metal.DefaultMetalTheme;495051/**52* This class describes a higher-contrast Metal Theme.53*54* @author Michael C. Albers55* @author Alexander Kouznetsov56*/57public class ContrastMetalTheme extends DefaultMetalTheme {5859@Override60public String getName() {61return "Contrast";62}63private final ColorUIResource primary1 = new ColorUIResource(0, 0, 0);64private final ColorUIResource primary2 = new ColorUIResource(204, 204, 204);65private final ColorUIResource primary3 = new ColorUIResource(255, 255, 255);66private final ColorUIResource primaryHighlight = new ColorUIResource(102,67102, 102);68private final ColorUIResource secondary2 =69new ColorUIResource(204, 204, 204);70private final ColorUIResource secondary3 =71new ColorUIResource(255, 255, 255);7273@Override74protected ColorUIResource getPrimary1() {75return primary1;76}7778@Override79protected ColorUIResource getPrimary2() {80return primary2;81}8283@Override84protected ColorUIResource getPrimary3() {85return primary3;86}8788@Override89public ColorUIResource getPrimaryControlHighlight() {90return primaryHighlight;91}9293@Override94protected ColorUIResource getSecondary2() {95return secondary2;96}9798@Override99protected ColorUIResource getSecondary3() {100return secondary3;101}102103@Override104public ColorUIResource getControlHighlight() {105return super.getSecondary3();106}107108@Override109public ColorUIResource getFocusColor() {110return getBlack();111}112113@Override114public ColorUIResource getTextHighlightColor() {115return getBlack();116}117118@Override119public ColorUIResource getHighlightedTextColor() {120return getWhite();121}122123@Override124public ColorUIResource getMenuSelectedBackground() {125return getBlack();126}127128@Override129public ColorUIResource getMenuSelectedForeground() {130return getWhite();131}132133@Override134public ColorUIResource getAcceleratorForeground() {135return getBlack();136}137138@Override139public ColorUIResource getAcceleratorSelectedForeground() {140return getWhite();141}142143@Override144public void addCustomEntriesToTable(UIDefaults table) {145146Border blackLineBorder =147new BorderUIResource(new LineBorder(getBlack()));148Border whiteLineBorder =149new BorderUIResource(new LineBorder(getWhite()));150151Object textBorder = new BorderUIResource(new CompoundBorder(152blackLineBorder,153new BasicBorders.MarginBorder()));154155table.put("ToolTip.border", blackLineBorder);156table.put("TitledBorder.border", blackLineBorder);157table.put("Table.focusCellHighlightBorder", whiteLineBorder);158table.put("Table.focusCellForeground", getWhite());159160table.put("TextField.border", textBorder);161table.put("PasswordField.border", textBorder);162table.put("TextArea.border", textBorder);163table.put("TextPane.font", textBorder);164165166}167}168169170