Java學習筆記-13.建立視窗和程式片

來源:互聯網
上載者:User

標籤:.text   lin   err   case   adapter   結構   har   邊框   otto   

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);        }    }}

Java學習筆記-13.建立視窗和程式片

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.