zoukankan      html  css  js  c++  java
  • Java学习笔记-13.创建窗口和程序片

    1.init()方法:程序片第一次被创建,初次运行初始化程序片时调用。

        start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭);同样在init()后调用。

         paint()方法:基础类Component的一部分(继承结构中上朔三级)。作为update()的一部分调用,以便对程序片的画布进行特殊的描绘。

         stop()方法:每次程序片从web浏览器的视线中离开时调用,时程序片能关闭代价高昂的操作;同样在调用destroy()前调用。

         destroy()方法:程序片不再需要,将它从页面中卸载时调用。

    2.事件模型:(1)先在类中添加addXXXXXListener()方法。

                         (2)重写执行接口的方法。

    package thirteen;
    
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    
    public class Button2New extends Applet {
        Button b1 = new Button("button1"), b2 = new Button("button2");
    
        public void init() {
            b1.addActionListener(new B1());
            b2.addActionListener(new B2());
            add(b1);
            add(b2);
        }
    
        class B1 implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                getAppletContext().showStatus("BUTTon1");
            }
        }
    
        class B2 implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                getAppletContext().showStatus("Button2");
            }
        }
    }

    3.制作窗口:(1)main()方法中新建一个Frame类,并将applet的衍生类给其初始化。

                         (2)继承WindowAdapter类,并重写windowClosing()方法。

                         (3)执行Frame的setVisible()方法。

    package thirteen;
    
    import java.applet.*;
    import java.applet.*;
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.TextField;
    import java.awt.Desktop.Action;
    import java.awt.Frame;
    import java.awt.event.*;
    import java.time.temporal.TemporalQueries;
    
    import javax.swing.table.TableRowSorter;
    
    import org.omg.CORBA.FloatSeqHelper;
    
    public class TextNew extends Applet {
        Button b1 = new Button("Get Text"), b2 = new Button("Set Text");
        TextField t1 = new TextField(30), t2 = new TextField(30), t3 = new TextField(30);
        String s = new String();
    
        public void init() {
            b1.addActionListener(new B1());
            b2.addActionListener(new B2());
            t1.addTextListener(new T1());
            t1.addActionListener(new T1A());
            t1.addKeyListener(new T1K());
            add(b1);
            add(b2);
            add(t1);
            add(t2);
            add(t3);
        }
    
        class T1 implements TextListener {
            public void textValueChanged(TextEvent e) {
                t2.setText(t1.getText());
            }
        }
    
        class T1A implements ActionListener {
            private int count = 0;
    
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO 自动生成的方法存根
                t3.setText("t1 Action Event " + count++);
    
            }
    
        }
    
        class T1K extends KeyAdapter {
            public void keyTyped(KeyEvent e) {
                String tString = t1.getText();
                if (e.getKeyChar() == KeyEvent.VK_BACK_SPACE) {
                    if (tString.length() > 0) {
                        tString = tString.substring(0, tString.length() - 1);
                        t1.setText(tString);
                    }
                }else
                    t1.setText(t1.getText()+Character.toUpperCase(e.getKeyChar()));
                t1.setCaretPosition(t1.getText().length());
                e.consume();
            }
        }
        
        class B1 implements ActionListener{
            public void actionPerformed(ActionEvent e){
                s=t1.getSelectedText();
                if(s.length()==0)s=t1.getText();
                t1.setEditable(true);
            }
        }
        class B2 implements ActionListener{
            public void actionPerformed(ActionEvent e){
                t1.setText("Insert by Button2:"+s);
                t1.setEditable(false);;
            }
        }
        
        public static void main(String[] args){
            TextNew applet=new TextNew();
            Frame aFrame=new Frame("TextNew");
            aFrame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            aFrame.add(applet, BorderLayout.CENTER);
            aFrame.setSize(300,200);
            applet.init();
            applet.start();
            aFrame.setVisible(true);
        }
    
    }

    4.JavaBean要求:

    (1)所有的类必须放在一个包中,在web中没有包是不存在的。

    (2)所有的类必须声明为public class,这样才能够被外部访问。

    (3)类中所有的属性都必须封装,使用private声明。

    (4)封装的属性如果需要被外部所操作,则必须编写对应的setter,getter方法。

    (5)一个JavaBean中至少存在一个无参构造方法。

    5.Swing各种边框的一个例子:

    package thirteen;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    
    public class Borders extends JPanel {
        static JPanel showBorder(Border b) {
            JPanel jPanel = new JPanel();
            jPanel.setLayout(new BorderLayout());
            String nm = b.getClass().toString();
            nm = nm.substring(nm.lastIndexOf('.') + 1);
            jPanel.add(new JLabel(nm, JLabel.CENTER), BorderLayout.CENTER);
            jPanel.setBorder(b);
            return jPanel;
        }
    
        public Borders() {
            setLayout(new GridLayout(2, 4));
            add(showBorder(new TitledBorder("Title")));
            add(showBorder(new EtchedBorder()));
            add(showBorder(new LineBorder(Color.blue)));
            add(showBorder(new MatteBorder(5, 5, 30, 30, Color.green)));
            add(showBorder(new BevelBorder(BevelBorder.RAISED)));
            add(showBorder(new SoftBevelBorder(BevelBorder.LOWERED)));
            add(showBorder(new CompoundBorder(new EtchedBorder(), new LineBorder(Color.red))));
        }
    
        public static void main(String[] args) {
            Show.inFrame(new Borders(), 500, 300);
        }
    
         static class Show {
            public static void inFrame(JPanel jPanel, int width, int height) {
                String title = jPanel.getClass().toString();
                if (title.indexOf("class") != -1)
                    title = title.substring(6);
                JFrame frame = new JFrame(title);
                frame.addWindowListener(new WindowAdapter() {
                    public void WindowClosing(WindowEvent e) {
                        System.exit(0);
                    }
                });
                frame.getContentPane().add(jPanel, BorderLayout.CENTER);
                frame.setSize(width, height);
                frame.setVisible(true);
            }
        }
    
    }
  • 相关阅读:
    使用 Apachetop 实时监测web服务器运行状况
    Idea连接服务器docker并部署代码到docker实现一键启动
    win10上修改docker的镜像文件存储位置
    docker无法删除镜像,Error: No such container,附docker常用命令
    docker--docker基本命令使用及发布镜像
    Docker for windows pull镜像文件的安装位置改变方法
    k8s 超详细总结,面试必问
    Java大数类BigDecimal及八种舍入模式的介绍
    BigDecimal创建初始化值类型对比
    BigDecimal 小数 浮点数 精度 财务计算
  • 原文地址:https://www.cnblogs.com/junshijie/p/7116933.html
Copyright © 2011-2022 走看看