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

  也是我妹问我的,她们要求直接用代码写,估计若是我长时间不看也写不出来,哈哈,幸好咱有界面设计器(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("u6D4Bu8BD5u7A97u53E3");
		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("u5355u51FBu6211");
		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..

原文地址:https://www.cnblogs.com/hxsyl/p/3164527.html