Gui 编程的完成需要窗口、面板、组件、事件监听......
窗口
this.setSize(500,500);//设置窗口大小
this.setLocation(100,100);//窗口坐标
this.setVisible(true);//****窗口是否可见
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口及停止程序
面板
一个窗口上可以有多个面板,组件只能放在面板上,无法直接放在窗口上。
面板的布局方式有四种流式布局(默认)、边界布局(东西南北中)、网格布局、随机定点布局。
//JPanel jp=new JPanel(); //创建面板 默认为流式布局 第一种对齐方式,居中对齐流式布局
// JPanel jp=new JPanel(new FlowLayout(FlowLayout.LEFT)); // 创建面板 靠左对齐
JPanel jp=new JPanel(new BorderLayout()); //创建面板 第二种对齐方式 边界布局将面板分成东西南北中五个部分。
//JPanel jp =new JPanel(new GridLayout(3,3));// 第三种对齐方式 网格布局 将面板分成几行几列的部分 // 行 列
Container c =this.getContentPane();//默认面板 第四种对齐方式 随机布局 将组件定点放在某一个坐标上 JButton jb9=new JButton("按钮"); // 随机布局 jb9.setLocation(100,50);//按钮坐标 随机布局 jb9.setSize(100,40);//按钮大小 随机布局 c.add(jb9);// 随机布局 this.setLayout(null);//设置 *窗口* 布局为null 随即布局*/
组件
组件分为按钮、标签、文本框、菜单
按钮JButton
JButton jb1 =new JButton("1"); //创建一个名为1的按钮 这里用的是网格布局 JButton jb2 =new JButton("2");// JButton jb3 =new JButton("3");// JButton jb4 =new JButton("4");// JButton jb5 =new JButton("❤");// jp.add(jb1,BorderLayout.CENTER);//在面板上添加按钮 jp.add(jb2,BorderLayout.EAST);// jp.add(jb3,BorderLayout.WEST);// jp.add(jb4,BorderLayout.NORTH);// jp.add(jb5,BorderLayout.SOUTH);//
标签
// 标签 JButton JBa=new JButton("登录");创建一个名为登录的按钮 JButton JBb=new JButton("取消");创建一个名为取消的按钮 JLabel JLaccount =new JLabel("账号");创建一个名为账号的标签 JLabel JLpassword=new JLabel("密码");创建一个名为密码的标签 // 加粗 JLaccount.setFont(new Font("隶书",Font.BOLD,20));标签的字体 加粗 大小 JLpassword.setFont(new Font("隶书",Font.BOLD,20)); JLaccount.setForeground(Color.black);标签字体颜色 JLpassword.setForeground(Color.black);标签字体颜色
文本框
账号框 JTextField accountField=new JTextField(15); // 密码框 JTextField passwordField=new JPasswordField(15);
菜单
new Menu();//添加菜单 dispose();//打开菜单然后关闭窗口
事件监听
JBa.addMouseListener(new MouseAdapter() { //监听鼠标 @Override public void mouseClicked(MouseEvent e) { System.out.println("鼠标点击"); } @Override public void mousePressed(MouseEvent e) { System.out.println("鼠标按压"); } @Override public void mouseReleased(MouseEvent e) { System.out.println("鼠标松开"); } @Override public void mouseEntered(MouseEvent e) { System.out.println("鼠标进入"); } @Override public void mouseExited(MouseEvent e) { System.out.println("鼠标离开"); } @Override public void mouseMoved(MouseEvent e) { System.out.println("鼠标移开"); } });
******动作监听
JBa.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { String accountLabel=accountField.getText(); if(accountLabel.length()==0){ //消息框 JOptionPane.showMessageDialog(null,"账号不存在"); return; } String password =passwordField.getText(); if(password.length()==0){ JOptionPane.showMessageDialog(null,"密码错误"); return; }
等等 还有键盘监听......
最后将组件add添加到面板上,将面板add添加到窗口上
最后输出窗口即可