• 十二周课程总结


     实验报告

    1-1)实验代码

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    public class My implements ActionListener{
    
        JFrame f;
        JButton b1,b2;
        JLabel l1,l2,l3;
        JTextField t;
        JPasswordField p;
        
        public My(){
            f = new JFrame("登陆窗口");
            b1 = new JButton("登陆");
            b2 = new JButton("重置");
            l1 = new JLabel("用户名");
            l2 = new JLabel("密   码");
            l3 = new JLabel("用户登陆系统");
            t = new JTextField();
            p = new JPasswordField();
            
            b1.addActionListener(this);
            b2.addActionListener(this);
            
            f.setLayout(null);
            
            l1.setBounds(10, 10, 40, 30);
            l2.setBounds(10, 60, 40, 30);
            t.setBounds(80, 10, 150, 30);
            p.setBounds(80, 50, 150, 30);
            b1.setBounds(80, 100, 80, 30);
            b2.setBounds(200, 100, 80, 30);
            l3.setBounds(50, 160, 200, 30);
            
            f.add(b1);
            f.add(b2);
            f.add(l1);
            f.add(l2);
            f.add(l3);
            f.add(t);
            f.add(p);
            
            f.setSize(400, 300);
            f.setVisible(true);
            
        }
    
        public void actionPerformed(ActionEvent a) {
            if(a.getSource()==b1){
               
                String s1 = t.getText();    
                String s2 = new String(p.getPassword()); 
                
                if(s1.equals("wangdashuai") && s2.equals("10086")){ 
                    l3.setText("登录成功,欢迎光临!"); 
                }
                else{ 
                    l3.setText("登录失败,用户名或密码错误!"); 
                } 
            } 
            if(a.getSource()==b2){
                t.setText("");                //清空文本框内容 
                p.setText("");                //清空密码框内容 
                l3.setText("用户登录系统!"); 
            } 
        }         
    } 

    1-2)实验代码

    import java.awt.GridLayout;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import javax.swing.Icon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class text {
    
        public static void main(String[] args){
            new My();
        
      }
    }

     2)运行结果截图

    总结这一次的题目老师上课已经讲过一遍了,但是还是有很多细节问题要自己处理。

    学习总结

    1、其他容器

    1)JPanel容器

    •  使用Jpanel可以完成各种复杂的界面显示。
    •  在JPanel中可以加入任意的组件,之后直接将Jpanel容器加入到JFrame容器中即可显示。
    • 可以将多个组件加入到JPanel中实现复杂的排列。

    •  使用JPanel并结合LayoutManager可以方便地管理组件。
    • 使用LayoutManager对多个Jpanel进行排列,而每个JPanel中也可以分别使用不同的LayoutManager管理组件,完成对组件进行复杂的排列。

     2)JSplitPane容器

    • JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列                                                                                                                                                                                                                                   JSplitPane类的主要方法和常量

          

     3)JTabbedPane容器

    • JTabbedPane是在一个面板上设置多个选项卡供用户选择
    • 如果用户需要查看相关方面信息,直接点开选项卡即可浏览,通过这种方式可以方便的管理相关信息。                                                                                                                                                                                                                        JTabbedPane常用方法和常量                       

      

     3)JScrollPane容器

    • 在一般的图形界面中如果显示的区域不够大,就会出现滚动条以方便用户浏览。
    • 在Swing中JSCrollPane为显示的内容加入滚动条。

    4)JScrollPane容器

    JScrollPane主要由JViewPortJScrollBar两部分组成。

    • JViewPort:显示一个矩形的区域让用户浏览
    • JScrollBar:形成水平或垂直的滚动条。

                                                                   JScrollPane常用方法和常量

     5)JDesktopPane与JInternalFrame容器

    • 在Swing中也可以完成内部窗体的显示,在一个窗体中可以显示多个子窗体,每一个子窗体都无法超出父窗体的区域。
    • JDesktopPane规定了一个父窗口的基本形式。
    • JInternalFrame规定了各个子窗体,JInternalFrame需要加入到JDesktopPane之中                                                             

                                                                               JDesktopPane常用方法

                                                                 

                                                                                JInternalFrame常用方法

     2、文本组件:JTextComponent

    各软件系统中都存在文本输入框,以方便用户输入数据,在Swing中提供了几类文本输入框:

    • 单行文本输入框:JTextField
    • 密码文本输入框:JPasswordField
    • 多行文本输入框:JTextArea

                                                                          JTextComponent的常用方法

     1)单行文本输入框:JTextField

    • JTextField组件可以实现单行文本输入,此类除了使用JTextComponet类的方法外,还可以使用以下的方法

     

    2)密文输入组件:JPasswordField

    • JText是使用明文方式进行数据显示的。
    • 如果现在需要将显示的内容设置成其他字符,则可以使用JPasswordField类,常用方法如下:

     

     3)多行文本输入组件:JTextArea

    • 如果要想输入多行文本,则可以使用JTextArea实现多行文本的输入,此类扩展了JTextComponent类

     

    3、事件处理

    1)事件和监听器

    • 要想让组件发挥作用,必须对所有的组件进行事件处理。
    • Java中使用事件表示一个对象的状态发生变化。例如当按钮按下时,实际上按钮的状态发生了变化,此时就会产生一个事件,如果要想处理此事件,就需要事件的监听者能不断的监听事件的变化,并根据这些事件进行相应的处理。
    • 在Swing编程中,所有的事件类都是EventObject类的子类

    2)Java事件处理流程

    • 事件源:发生此事件的源对象。
    • 事件监听器:事件的接收对象。
    • 如果没有能够接收和处理事件的对象,图形界面程序所生成的一切事件都是无用的。
    • 所有的事件监听器都是以接口的形式出现的,处理时只需要实现此接口。

     

     3)窗体事件

    • WindowListener是专门处理窗体的事件监听接口,窗体的所有变化都可以使用这个接口进行监听。

     

     4)动作事件及监听处理

    • 一个按钮想要让其变得有意义,就必须使用事件处理,在Swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件。
    • ActionListener接口只定义了一个方法。

     

  • 相关阅读:
    Docker Private Registry
    Dockerfile
    docker存储卷
    392. 判断子序列
    1576. 替换所有的问号
    270. 最接近的二叉搜索树值
    292. Nim 游戏
    680. 验证回文字符串 Ⅱ
    876. 链表的中间结点
    543. 二叉树的直径
  • 原文地址:https://www.cnblogs.com/wangweihanqq2001/p/11868280.html
Copyright © 2020-2023  润新知