博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
更多选项的框架容器
阅读量:6476 次
发布时间:2019-06-23

本文共 3523 字,大约阅读时间需要 11 分钟。

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

 

 

   按钮是图形用户界面中最常见也是最简单的控件之一。在使用按钮时可以为其增加图片、设置快捷键等。为了让按钮对用户操作产生响应,通常对其增加动作监听。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("\u663E\u793A\u6210\u529F\u79D8\u7C4D");        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;}

 

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

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

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

 

 

 

 

转载于:https://www.cnblogs.com/mrxy/p/6525185.html

你可能感兴趣的文章
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
leveldb学习:DBimpl
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>