十二周课程总结

 实验报告

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接口只定义了一个方法。

 

posted @ 2019-11-15 17:35  ღ阿ོ茶꧔ꦿ༊  阅读(218)  评论(0编辑  收藏  举报