一道关于简单界面设计的练习题

简介:   也是我妹问我的,她们要求直接用代码写,估计若是我长时间不看也写不出来,哈哈,幸好咱有界面设计器(WB)…… 我加了个要求,若是原来有文本就清空,刚开始想判断鼠标单击的次数,奇数就显示,偶数就清空,也可以的,只不过或许不保险,反应不过来咋办,哈哈。

  也是我妹问我的,她们要求直接用代码写,估计若是我长时间不看也写不出来,哈哈,幸好咱有界面设计器(WB)……

我加了个要求,若是原来有文本就清空,刚开始想判断鼠标单击的次数,奇数就显示,偶数就清空,也可以的,只不过或许不保险,反应不过来咋办,哈哈。

//鼠标事件内容是我写的,其它WB搞定
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class MyJFrame extends JFrame {

	private JPanel contentPane;
	private JTextField textField;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MyJFrame frame = new MyJFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public MyJFrame() {
		setTitle("\u6D4B\u8BD5\u7A97\u53E3");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		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);
		
		textField = new JTextField();
		panel.add(textField);
		textField.setColumns(10);
		
		JButton btnNewButton = new JButton("\u5355\u51FB\u6211");
		btnNewButton.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				String s = textField.getText();
				if(0==s.length()) {//判断文本域为空,方法都忘记了
					textField.setText("用户单击了我");//直接这样就显示了
				}else
				{
					textField.setText("");//清空只能这样,没有方法
				}
			}
		});
		panel.add(btnNewButton);
	}

}

 

 

引出下面一个小问题JFrame和JPanel的区别?

  JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel。JFrame是窗口,JPanel是面板,窗口可以有最大最小化,标题栏图标,面板没有。JFrame是界面组件的容器,JPanel也是容器,但是任何组件包括Panel的显示都依赖于frame..

目录
相关文章
|
SQL 运维 Oracle
MySQL 8.0 OCP 1Z0-908认证考试题库(7-20)
Examine the command, which execute successfully
1464 0
|
存储 Apache
《海量数据分布式存储——Apache HDFS之最新进展》电子版地址
海量数据分布式存储——Apache HDFS之最新进展
89 0
《海量数据分布式存储——Apache HDFS之最新进展》电子版地址
|
存储 机器学习/深度学习 分布式计算
持续定义SaaS模式云数据仓库+Serverless
本文将为您介绍现代云数据仓库的业务场景与资源使用需求,不同资源交付模式的差异化分析。并结合MaxCompute Serverless的特点及价值来讲解使用MaxCompute Serverless的最佳实践。
11146 0
持续定义SaaS模式云数据仓库+Serverless
|
6天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!