javaswing控件以及事件监听器
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); } }