|
Java example source code file (MetalworksPrefs.java)
The MetalworksPrefs.java Java example source code/* * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Oracle nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This source code is provided to illustrate the usage of a given feature * or technique and has been deliberately simplified. Additional steps * required for a production-quality application, such as security checks, * input validation and proper error handling, might not be present in * this sample code. */ import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTabbedPane; import javax.swing.UIManager; import javax.swing.border.TitledBorder; /** * This is dialog which allows users to choose preferences * * @author Steve Wilson * @author Alexander Kouznetsov */ @SuppressWarnings("serial") public final class MetalworksPrefs extends JDialog { public MetalworksPrefs(JFrame f) { super(f, "Preferences", true); JPanel container = new JPanel(); container.setLayout(new BorderLayout()); JTabbedPane tabs = new JTabbedPane(); JPanel filters = buildFilterPanel(); JPanel conn = buildConnectingPanel(); tabs.addTab("Filters", null, filters); tabs.addTab("Connecting", null, conn); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); JButton cancel = new JButton("Cancel"); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CancelPressed(); } }); buttonPanel.add(cancel); JButton ok = new JButton("OK"); ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { OKPressed(); } }); buttonPanel.add(ok); getRootPane().setDefaultButton(ok); container.add(tabs, BorderLayout.CENTER); container.add(buttonPanel, BorderLayout.SOUTH); getContentPane().add(container); pack(); centerDialog(); UIManager.addPropertyChangeListener(new UISwitchListener(container)); } public JPanel buildFilterPanel() { JPanel filters = new JPanel(); filters.setLayout(new GridLayout(1, 0)); JPanel spamPanel = new JPanel(); spamPanel.setLayout(new ColumnLayout()); spamPanel.setBorder(new TitledBorder("Spam")); ButtonGroup spamGroup = new ButtonGroup(); JRadioButton file = new JRadioButton("File in Spam Folder"); JRadioButton delete = new JRadioButton("Auto Delete"); JRadioButton bomb = new JRadioButton("Reverse Mail-Bomb"); spamGroup.add(file); spamGroup.add(delete); spamGroup.add(bomb); spamPanel.add(file); spamPanel.add(delete); spamPanel.add(bomb); file.setSelected(true); filters.add(spamPanel); JPanel autoRespond = new JPanel(); autoRespond.setLayout(new ColumnLayout()); autoRespond.setBorder(new TitledBorder("Auto Response")); ButtonGroup respondGroup = new ButtonGroup(); JRadioButton none = new JRadioButton("None"); JRadioButton vaca = new JRadioButton("Send Vacation Message"); JRadioButton thx = new JRadioButton("Send Thank You Message"); respondGroup.add(none); respondGroup.add(vaca); respondGroup.add(thx); autoRespond.add(none); autoRespond.add(vaca); autoRespond.add(thx); none.setSelected(true); filters.add(autoRespond); return filters; } public JPanel buildConnectingPanel() { JPanel connectPanel = new JPanel(); connectPanel.setLayout(new ColumnLayout()); JPanel protoPanel = new JPanel(); JLabel protoLabel = new JLabel("Protocol"); JComboBox protocol = new JComboBox(); protocol.addItem("SMTP"); protocol.addItem("IMAP"); protocol.addItem("Other..."); protoPanel.add(protoLabel); protoPanel.add(protocol); JPanel attachmentPanel = new JPanel(); JLabel attachmentLabel = new JLabel("Attachments"); JComboBox attach = new JComboBox(); attach.addItem("Download Always"); attach.addItem("Ask size > 1 Meg"); attach.addItem("Ask size > 5 Meg"); attach.addItem("Ask Always"); attachmentPanel.add(attachmentLabel); attachmentPanel.add(attach); JCheckBox autoConn = new JCheckBox("Auto Connect"); JCheckBox compress = new JCheckBox("Use Compression"); autoConn.setSelected(true); connectPanel.add(protoPanel); connectPanel.add(attachmentPanel); connectPanel.add(autoConn); connectPanel.add(compress); return connectPanel; } protected void centerDialog() { Dimension screenSize = this.getToolkit().getScreenSize(); Dimension size = this.getSize(); screenSize.height = screenSize.height / 2; screenSize.width = screenSize.width / 2; size.height = size.height / 2; size.width = size.width / 2; int y = screenSize.height - size.height; int x = screenSize.width - size.width; this.setLocation(x, y); } public void CancelPressed() { this.setVisible(false); } public void OKPressed() { this.setVisible(false); } } class ColumnLayout implements LayoutManager { int xInset = 5; int yInset = 5; int yGap = 2; public void addLayoutComponent(String s, Component c) { } public void layoutContainer(Container c) { Insets insets = c.getInsets(); int height = yInset + insets.top; Component[] children = c.getComponents(); Dimension compSize = null; for (Component child : children) { compSize = child.getPreferredSize(); child.setSize(compSize.width, compSize.height); child.setLocation(xInset + insets.left, height); height += compSize.height + yGap; } } public Dimension minimumLayoutSize(Container c) { Insets insets = c.getInsets(); int height = yInset + insets.top; int width = 0 + insets.left + insets.right; Component[] children = c.getComponents(); Dimension compSize = null; for (Component child : children) { compSize = child.getPreferredSize(); height += compSize.height + yGap; width = Math.max(width, compSize.width + insets.left + insets.right + xInset * 2); } height += insets.bottom; return new Dimension(width, height); } public Dimension preferredLayoutSize(Container c) { return minimumLayoutSize(c); } public void removeLayoutComponent(Component c) { } } Other Java examples (source code examples)Here is a short list of links related to this Java MetalworksPrefs.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.