javaswing控件以及事件监听器

发布时间 2023-11-29 12:02:38作者: 王庆园
package 百度翻译实验;



import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class frame extends JFrame{
    //放到弗雷德一个属性,这样的话下面的btn1这个事件也可以访问
    JLabel timelabel=new JLabel("00:00:00");
    public frame()
    {
        JPanel root =new JPanel();
        this.setContentPane(root);
        JButton button=new JButton("翻译");
        root.add(button);
        /****
         * 文本框控件
         * ****/
        JTextField textfield=new JTextField(20);
        root.add(textfield);
        /*ActionListener  click=new btn1();
        button.addActionListener(click);*/
        //简写
        /*button.addActionListener(new btn1());*/
        
        //匿名内部类,我的理解就是直接在这个声明里面直接写,但是我感觉这样太乱了所以还是在下面写然后这里在这里引用
        /*button.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                
            }
        });*/
        //创建一个jlable空间使得内容可以显示
        
        
        //很重要的lambda表达式,目的是为了简化代码
        button.addActionListener((e)->{
            showtime();
        });
        root.add(timelabel);
        
    }
    //我们把显示时间写成一个方法
    private void showtime()
    {
        SimpleDateFormat sdf =new  SimpleDateFormat("HH:mm:ss");
        String time=sdf.format(new Date());
        System.out.println(time);
        
        //通过访问父类的这个容器让后把这个内容放到上面
        timelabel.setText(time);
    }
    
    /*private class btn1 implements ActionListener
    {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            //打印我们当前系统的时间
            SimpleDateFormat sdf =new  SimpleDateFormat("HH:mm:ss");
            String time=sdf.format(new Date());
            System.out.println(time);
            
            //通过访问父类的这个容器让后把这个内容放到上面
            timelabel.setText(time);
        }
        
    }*/

}

下面是主要的main

package 百度翻译实验;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class translate {
	
	 public static void main(String[] args) {
	       
		 //jfram指的是一个窗口
		// myframe frame=new myframe();\
		 //子类继承父类所以可以直接声明
		 JFrame frame=new frame();
		 
		 //当关闭窗口时候退出整个程序
		 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		 
		 
		
		 //设置窗口大小宽高
		 frame.setSize(400,300);
		 //显示窗口
		 frame.setVisible(true);
		
		 
	    }
	

}