一道关于简单界面设计的练习题
也是我妹问我的,她们要求直接用代码写,估计若是我长时间不看也写不出来,哈哈,幸好咱有界面设计器(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..
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.