zoukankan      html  css  js  c++  java
  • 更多选项的框架容器

       在用户注册网站时,除了用户名、密码必须填写外,还可以增加一些其他信息让用户选填。通常为了节约空间可以将选填项隐藏,如果用户想填写再显示。本实例在一个框架中实现了这个效果。实例运行效果如图所示。

       按钮是图形用户界面中最常见也是最简单的控件之一。在使用按钮时可以为其增加图片、设置快捷键等。为了让按钮对用户操作产生响应,通常对其增加动作监听。ActionListener是一个监听器接口,它定义了一个名为actionPerformed()的方法,用来实现对用户单击按钮的响应。该方法的声明如下:

    void actionPerformed(ActionEvent e)

    参数说明

    e:动作事件对象。

    技巧:对于基本的Swing控件,如单选按钮、组合框等都可以监听其动作事件并做出响应。

     

    1)编写MoreChoices类,该类继承了JFrame。在框架中增加一个按钮“显示成功秘籍”。

     

    2)本实例一共实现了两个动作监听器对象,即moreless,由于其代码相似,取more进行讲解。该监听器实现了在内容窗格上增加面板控件hiddenPanel、修改按钮的文本信息、删除按钮上more的监听器并增加按钮上less的监听器的功能。代码如下:

    package com.mingrisoft.jframe;
    
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.UIManager;
    
    public class MoreChoices extends JFrame {
        
        /**
         * 
         */
        private static final long serialVersionUID = -3130941572848968305L;
        private JPanel contentPane;
        private JPanel hiddenPanel = new JPanel();
        
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            try {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            } catch (Throwable e) {
                e.printStackTrace();
            }
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        MoreChoices frame = new MoreChoices();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
        
        /**
         * Create the frame.
         */
        public MoreChoices() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 138, 86);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            contentPane.setLayout(new BorderLayout(0, 0));
            setContentPane(contentPane);
            
            JPanel panel = new JPanel();
            contentPane.add(panel, BorderLayout.NORTH);
            
            button = new JButton("u663Eu793Au6210u529Fu79D8u7C4D");
            button.addActionListener(more);
            panel.add(button);
            Dimension panelDimension = new Dimension(button.getPreferredSize().width, button.getPreferredSize().height + 10);
            panel.setPreferredSize(panelDimension);
            
            JLabel label = new JLabel("Java编程词典");
            hiddenPanel.add(label);
            hiddenPanel.setBorder(BorderFactory.createEtchedBorder());
        }
        
        ActionListener more = new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                getContentPane().add(hiddenPanel);
                pack();
                button.setText("隐藏成功秘籍");
                button.removeActionListener(more);
                button.addActionListener(less);
                
            }
        };
        ActionListener less = new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                remove(hiddenPanel);
                pack();
                button.setText("显示成功秘籍");
                button.removeActionListener(less);
                button.addActionListener(more);
                
            }
        };
        private JButton button;
    }

    技巧:在事件监听器中使用匿名内部类可以让代码更加简洁。

    心法领悟:隐藏控件的应用。

    为了简单起见,本实例仅隐藏了一个标签。读者可以在本实例的基础上进行增强,如隐藏复选框、单选按钮、文本域等控件。而且只要修改边框布局的定位,就能调整隐藏控件显示的位置,如在上方显示、左方显示等。读者可以根据自己的需求进行调整。

     

     

  • 相关阅读:
    作业九 ——报告及总结(6.16更新)
    作业八:团队项目——Alpha阶段项目总结
    作业七:团队项目——Alpha版本冲刺阶段
    作业六:团队项目——编写项目的Spec
    作业五:团队项目——项目启动及需求分析
    作业四: 结对编程项目---四则运算
    作业三: 代码规范、代码复审、PSP
    Selenium WebDriver-网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
    python 爬虫,起点完结榜前100榜单
    网络基础2之物理层
  • 原文地址:https://www.cnblogs.com/mrxy/p/6525185.html
Copyright © 2011-2022 走看看